home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 July / Macworld (1999-07).dmg / Shareware World / Info / For Developers / Mops 3.4.sea / Mops source / PPC source / pnuc3 < prev    next >
MacBinary  |  1999-01-10  |  20.4 KB  |  [TEXT/MSET]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sun Jan 10 16:07:10 1999, modified Sun Jan 10 16:07:10 1999, creator 'MSET', type ASCII, 20304 bytes "pnuc3" , at 0x4fd0 381 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-2K) default (weak)
16% TrID MacBinary 2 default (weak)
0% TrID Sybase iAnywhere database files default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MSET]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 05 70 6e 75 63 33 00 | 00 00 00 00 00 00 00 00 |..pnuc3.|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 53 45 | 54 01 00 00 00 00 00 00 |.TEXTMSE|T.......|
|00000050| 00 00 00 00 00 4f 50 00 | 00 01 7d b2 be c6 fe b2 |.....OP.|..}.....|
|00000060| be c6 fe 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 56 82 00 00 |........|....V...|
|00000080| 5c 09 09 09 09 09 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |\.....==|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 0d 5c 09 09 20 20 20 | 20 09 09 09 09 41 50 50 |=.\.. | ....APP|
|000000b0| 4c 45 45 56 45 4e 54 53 | 0d 5c 09 09 09 09 09 3d |LEEVENTS|.\.....=|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0d 3a 20 41 45 |========|==..: AE|
|000000e0| 48 41 4e 44 4c 45 52 20 | 20 28 20 5e 41 45 20 5e |HANDLER | ( ^AE ^|
|000000f0| 41 45 52 65 70 6c 79 20 | 52 65 66 43 6f 6e 20 2d |AEReply |RefCon -|
|00000100| 2d 20 29 0d 0d 5c 20 50 | 75 74 20 61 74 20 74 68 |- )..\ P|ut at th|
|00000110| 65 20 73 74 61 72 74 20 | 6f 66 20 61 6e 20 41 70 |e start |of an Ap|
|00000120| 70 6c 65 45 76 65 6e 74 | 20 68 61 6e 64 6c 65 72 |pleEvent| handler|
|00000130| 20 70 72 6f 63 2e 20 20 | 50 6f 70 73 20 74 68 65 | proc. |Pops the|
|00000140| 20 70 61 72 6d 73 20 69 | 6e 74 6f 0d 5c 20 74 68 | parms i|nto.\ th|
|00000150| 65 20 61 70 70 72 6f 70 | 72 69 61 74 65 20 6c 6f |e approp|riate lo|
|00000160| 63 61 74 69 6f 6e 73 2e | 0d 0d 3b 0d 0d 09 0d 3a |cations.|..;....:|
|00000170| 20 47 4f 54 50 41 52 4d | 53 3f 20 20 28 20 2d 2d | GOTPARM|S? ( --|
|00000180| 20 72 63 20 29 0d 0d 5c | 20 54 68 69 73 20 63 61 | rc )..\| This ca|
|00000190| 6e 20 62 65 20 63 61 6c | 6c 65 64 20 61 74 20 74 |n be cal|led at t|
|000001a0| 68 65 20 65 6e 64 20 6f | 66 20 61 20 68 61 6e 64 |he end o|f a hand|
|000001b0| 6c 65 72 2c 20 74 6f 20 | 63 68 65 63 6b 20 69 66 |ler, to |check if|
|000001c0| 20 77 65 20 67 6f 74 20 | 61 6c 6c 0d 5c 20 74 68 | we got |all.\ th|
|000001d0| 65 20 70 61 72 61 6d 65 | 74 65 72 73 2e 0d 0d 3b |e parame|ters...;|
|000001e0| 0d 0d 0d 3a 20 3f 52 54 | 4e 41 45 50 4d 49 53 53 |...: ?RT|NAEPMISS|
|000001f0| 45 44 20 20 28 20 72 63 | 20 2d 2d 20 72 63 27 20 |ED ( rc| -- rc' |
|00000200| 29 0d 0d 5c 20 54 68 69 | 73 20 63 61 6e 20 62 65 |)..\ Thi|s can be|
|00000210| 20 63 61 6c 6c 65 64 20 | 61 66 74 65 72 20 63 61 | called |after ca|
|00000220| 6c 6c 69 6e 67 20 47 6f | 74 50 61 72 6d 73 3f 20 |lling Go|tParms? |
|00000230| 74 6f 20 63 6f 6e 76 65 | 72 74 20 74 68 65 20 72 |to conve|rt the r|
|00000240| 65 74 75 72 6e 20 63 6f | 64 65 0d 5c 20 66 72 6f |eturn co|de.\ fro|
|00000250| 6d 20 74 68 61 74 20 77 | 6f 72 64 20 74 6f 20 74 |m that w|ord to t|
|00000260| 68 65 20 61 70 70 72 6f | 70 72 69 61 74 65 20 72 |he appro|priate r|
|00000270| 65 74 75 72 6e 20 63 6f | 64 65 20 74 6f 20 72 65 |eturn co|de to re|
|00000280| 74 75 72 6e 20 74 6f 20 | 74 68 65 20 63 61 6c 6c |turn to |the call|
|00000290| 65 72 0d 5c 20 6f 66 20 | 74 68 65 20 68 61 6e 64 |er.\ of |the hand|
|000002a0| 6c 65 72 2e 20 20 49 66 | 20 47 6f 74 50 61 72 6d |ler. If| GotParm|
|000002b0| 73 3f 20 72 65 74 75 72 | 6e 73 20 66 61 6c 73 65 |s? retur|ns false|
|000002c0| 2c 20 74 68 61 74 20 6d | 65 61 6e 73 20 77 65 20 |, that m|eans we |
|000002d0| 6d 69 73 73 65 64 0d 5c | 20 61 20 70 61 72 6d 2c |missed.\| a parm,|
|000002e0| 20 73 6f 20 77 65 20 72 | 65 74 75 72 6e 20 2d 31 | so we r|eturn -1|
|000002f0| 37 31 35 2e 20 20 49 66 | 20 47 6f 74 50 61 72 6d |715. If| GotParm|
|00000300| 73 3f 20 72 65 74 75 72 | 6e 65 64 20 61 6e 79 74 |s? retur|ned anyt|
|00000310| 68 69 6e 67 20 6e 6f 6e | 2d 7a 65 72 6f 2c 0d 5c |hing non|-zero,.\|
|00000320| 20 74 68 61 74 20 6d 65 | 61 6e 73 20 77 65 20 67 | that me|ans we g|
|00000330| 6f 74 20 61 6c 6c 20 74 | 68 65 20 70 61 72 6d 73 |ot all t|he parms|
|00000340| 2c 20 73 6f 20 77 65 20 | 72 65 74 75 72 6e 20 7a |, so we |return z|
|00000350| 65 72 6f 2e 0d 0d 09 49 | 46 20 20 30 20 20 45 4c |ero....I|F 0 EL|
|00000360| 53 45 20 20 2d 31 37 31 | 35 20 20 54 48 45 4e 20 |SE -171|5 THEN |
|00000370| 20 3b 0d 0d 0d 5c 09 09 | 09 09 09 3d 3d 3d 3d 3d | ;...\..|...=====|
|00000380| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000390| 3d 3d 3d 0d 5c 09 09 09 | 09 09 09 20 45 52 52 4f |===.\...|... ERRO|
|000003a0| 52 20 48 41 4e 44 4c 49 | 4e 47 0d 5c 09 09 09 09 |R HANDLI|NG.\....|
|000003b0| 09 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.=======|========|
|000003c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0d 28 2a 09 54 68 |========|=..(*.Th|
|000003d0| 69 73 20 69 73 20 75 6e | 66 6f 72 74 75 6e 61 74 |is is un|fortunat|
|000003e0| 65 6c 79 20 61 20 62 69 | 74 20 63 6f 6d 70 6c 69 |ely a bi|t compli|
|000003f0| 63 61 74 65 64 2e 20 20 | 54 68 65 20 62 61 73 69 |cated. |The basi|
|00000400| 63 20 6d 65 63 68 61 6e | 69 73 6d 20 69 73 0d 09 |c mechan|ism is..|
|00000410| 74 68 65 20 73 74 61 6e | 64 61 72 64 20 43 41 54 |the stan|dard CAT|
|00000420| 43 48 20 61 6e 64 20 54 | 48 52 4f 57 2e 20 20 41 |CH and T|HROW. A|
|00000430| 70 61 72 74 20 66 72 6f | 6d 20 54 48 52 4f 57 2c |part fro|m THROW,|
|00000440| 20 74 68 65 72 65 20 61 | 72 65 20 74 68 72 65 65 | there a|re three|
|00000450| 0d 09 77 6f 72 64 73 20 | 77 68 69 63 68 20 73 69 |..words |which si|
|00000460| 67 6e 61 6c 20 61 6e 20 | 65 72 72 6f 72 20 2d 20 |gnal an |error - |
|00000470| 41 42 4f 52 54 2c 20 41 | 42 4f 52 54 22 20 61 6e |ABORT, A|BORT" an|
|00000480| 64 20 6f 75 72 20 4d 6f | 70 73 20 65 72 72 6f 72 |d our Mo|ps error|
|00000490| 0d 09 64 75 6d 70 20 77 | 6f 72 64 20 44 49 45 2e |..dump w|ord DIE.|
|000004a0| 0d 09 0d 09 54 68 65 20 | 73 74 61 6e 64 61 72 64 |....The |standard|
|000004b0| 20 73 61 79 73 20 74 68 | 61 74 20 69 66 20 43 41 | says th|at if CA|
|000004c0| 54 43 48 20 61 6e 64 20 | 54 48 52 4f 57 20 61 72 |TCH and |THROW ar|
|000004d0| 65 0d 09 69 6d 70 6c 65 | 6d 65 6e 74 65 64 2c 20 |e..imple|mented, |
|000004e0| 41 42 4f 52 54 20 74 68 | 72 6f 77 73 20 61 20 2d |ABORT th|rows a -|
|000004f0| 31 2c 20 61 6e 64 20 41 | 42 4f 52 54 22 20 74 68 |1, and A|BORT" th|
|00000500| 72 6f 77 73 20 61 20 2d | 32 2e 20 20 54 68 69 73 |rows a -|2. This|
|00000510| 0d 09 61 6c 6c 6f 77 73 | 20 61 20 74 68 72 6f 77 |..allows| a throw|
|00000520| 20 68 61 6e 64 6c 65 72 | 20 74 6f 20 63 61 74 63 | handler| to catc|
|00000530| 68 20 74 68 65 73 65 20 | 61 6e 64 20 6f 76 65 72 |h these |and over|
|00000540| 72 69 64 65 20 74 68 65 | 20 64 65 66 61 75 6c 74 |ride the| default|
|00000550| 0d 09 65 72 72 6f 72 20 | 61 63 74 69 6f 6e 2e 0d |..error |action..|
|00000560| 09 0d 09 49 66 20 6e 6f | 20 74 68 72 6f 77 20 68 |...If no| throw h|
|00000570| 61 6e 64 6c 65 72 20 69 | 73 20 69 6e 73 74 61 6c |andler i|s instal|
|00000580| 6c 65 64 2c 20 74 68 65 | 20 64 65 66 61 75 6c 74 |led, the| default|
|00000590| 20 61 63 74 69 6f 6e 0d | 09 6f 63 63 75 72 73 2e | action.|.occurs.|
|000005a0| 20 20 46 6f 72 20 74 68 | 69 73 20 64 65 66 61 75 | For th|is defau|
|000005b0| 6c 74 20 61 63 74 69 6f | 6e 2c 20 77 65 20 64 65 |lt actio|n, we de|
|000005c0| 66 69 6e 65 20 44 46 4c | 54 5f 41 42 4f 52 54 20 |fine DFL|T_ABORT |
|000005d0| 61 6e 64 20 44 46 4c 54 | 5f 45 52 52 0d 09 28 49 |and DFLT|_ERR..(I|
|000005e0| 20 61 73 73 75 6d 65 20 | 49 20 64 69 64 6e 27 74 | assume |I didn't|
|000005f0| 20 77 61 6e 74 20 74 6f | 20 63 61 6c 6c 20 69 74 | want to| call it|
|00000600| 20 64 66 6c 74 2d 61 62 | 6f 72 74 22 20 73 69 6e | dflt-ab|ort" sin|
|00000610| 63 65 20 69 74 20 64 6f | 65 73 6e 27 74 20 74 61 |ce it do|esn't ta|
|00000620| 6b 65 0d 09 61 6e 20 69 | 6e 6c 69 6e 65 20 73 74 |ke..an i|nline st|
|00000630| 72 69 6e 67 20 2d 20 74 | 68 61 74 20 77 61 73 20 |ring - t|hat was |
|00000640| 73 74 6f 72 65 64 20 62 | 79 20 41 42 4f 52 54 22 |stored b|y ABORT"|
|00000650| 2e 29 0d 0d 09 57 65 20 | 66 6f 6c 6c 6f 77 20 74 |.)...We |follow t|
|00000660| 68 65 20 73 61 6d 65 20 | 70 68 69 6c 6f 73 6f 70 |he same |philosop|
|00000670| 68 79 20 77 69 74 68 20 | 44 49 45 2e 20 20 54 68 |hy with |DIE. Th|
|00000680| 65 20 65 72 72 6f 72 20 | 63 6f 64 65 20 70 61 73 |e error |code pas|
|00000690| 73 65 64 20 74 6f 0d 09 | 44 49 45 20 69 73 20 73 |sed to..|DIE is s|
|000006a0| 69 6d 70 6c 79 20 54 48 | 52 4f 57 6e 20 28 6e 6f |imply TH|ROWn (no|
|000006b0| 74 65 20 77 65 20 64 6f | 6e 27 74 20 75 73 65 20 |te we do|n't use |
|000006c0| 61 6e 79 20 6e 65 67 61 | 74 69 76 65 20 65 72 72 |any nega|tive err|
|000006d0| 6f 72 20 63 6f 64 65 0d | 09 66 6f 72 20 61 20 6e |or code.|.for a n|
|000006e0| 6f 6e 2d 41 4e 53 49 20 | 4d 6f 70 73 20 65 72 72 |on-ANSI |Mops err|
|000006f0| 6f 72 29 2c 20 77 68 69 | 63 68 20 61 6c 6c 6f 77 |or), whi|ch allow|
|00000700| 73 20 61 20 74 68 72 6f | 77 20 68 61 6e 64 6c 65 |s a thro|w handle|
|00000710| 72 20 74 6f 20 69 6e 74 | 65 72 63 65 70 74 0d 09 |r to int|ercept..|
|00000720| 69 74 2e 20 20 41 6e 64 | 20 77 65 20 64 65 66 69 |it. And| we defi|
|00000730| 6e 65 20 44 46 4c 54 5f | 44 49 45 20 74 6f 20 62 |ne DFLT_|DIE to b|
|00000740| 65 20 65 78 65 63 75 74 | 65 64 20 69 66 20 74 68 |e execut|ed if th|
|00000750| 65 72 65 27 73 20 6e 6f | 20 74 68 72 6f 77 20 68 |ere's no| throw h|
|00000760| 61 6e 64 6c 65 72 2c 0d | 09 77 68 69 63 68 20 64 |andler,.|.which d|
|00000770| 6f 65 73 20 6f 75 72 20 | 6e 6f 72 6d 61 6c 20 4d |oes our |normal M|
|00000780| 6f 70 73 20 65 72 72 6f | 72 20 64 75 6d 70 20 74 |ops erro|r dump t|
|00000790| 6f 20 74 68 65 20 4d 6f | 70 73 20 77 69 6e 64 6f |o the Mo|ps windo|
|000007a0| 77 2e 0d 2a 29 0d 0d 0d | 66 6f 72 77 61 72 64 20 |w..*)...|forward |
|000007b0| 51 55 49 54 0d 66 6f 72 | 77 61 72 64 20 28 2e 73 |QUIT.for|ward (.s|
|000007c0| 74 6b 29 0d 66 6f 72 77 | 61 72 64 20 2e 6f 62 6a |tk).forw|ard .obj|
|000007d0| 4f 72 52 41 0d 66 6f 72 | 77 61 72 64 20 74 73 74 |OrRA.for|ward tst|
|000007e0| 72 0d 0d 0d 30 09 09 76 | 61 6c 75 65 09 6f 72 69 |r...0..v|alue.ori|
|000007f0| 67 43 44 50 09 09 09 5c | 20 73 65 74 20 74 6f 20 |gCDP...\| set to |
|00000800| 74 68 65 20 22 6e 6f 72 | 6d 61 6c 22 20 43 44 50 |the "nor|mal" CDP|
|00000810| 20 69 66 20 77 65 27 72 | 65 0d 09 09 09 09 09 09 | if we'r|e.......|
|00000820| 09 09 5c 20 20 74 65 6d | 70 6f 72 61 72 69 6c 79 |..\ tem|porarily|
|00000830| 20 69 6e 20 74 68 65 20 | 65 78 65 63 75 74 69 6f | in the |executio|
|00000840| 6e 20 62 75 66 66 65 72 | 0d 0d 0d 3a 20 54 79 70 |n buffer|...: Typ|
|00000850| 65 45 72 72 4e 75 6d 20 | 20 28 20 65 72 72 23 20 |eErrNum | ( err# |
|00000860| 2d 2d 20 29 0d 09 69 6e | 73 74 6c 64 3f 20 20 3f |-- )..in|stld? ?|
|00000870| 45 58 49 54 0d 09 63 72 | 20 2e 22 20 45 72 72 6f |EXIT..cr| ." Erro|
|00000880| 72 20 23 20 22 20 20 64 | 75 70 20 2e 20 20 73 70 |r # " d|up . sp|
|00000890| 61 63 65 20 20 74 73 74 | 72 0d 3b 0d 0d 0d 28 2a |ace tst|r.;...(*|
|000008a0| 09 53 41 56 45 5f 45 52 | 52 20 28 20 61 64 64 72 |.SAVE_ER|R ( addr|
|000008b0| 20 6c 65 6e 20 5e 65 64 | 20 2d 2d 20 29 0d 09 73 | len ^ed| -- )..s|
|000008c0| 61 76 65 73 20 61 6c 6c | 20 74 68 65 20 69 6e 66 |aves all| the inf|
|000008d0| 6f 20 6e 65 65 64 65 64 | 20 66 6f 72 20 61 6e 20 |o needed| for an |
|000008e0| 65 72 72 6f 72 20 64 75 | 6d 70 2c 20 66 6f 72 20 |error du|mp, for |
|000008f0| 6c 61 74 65 72 20 75 73 | 65 20 62 79 20 74 68 65 |later us|e by the|
|00000900| 20 64 65 66 61 75 6c 74 | 0d 09 65 72 72 6f 72 20 | default|..error |
|00000910| 68 61 6e 64 6c 69 6e 67 | 20 72 6f 75 74 69 6e 65 |handling| routine|
|00000920| 20 77 68 69 63 68 20 6d | 61 79 20 62 65 20 63 61 | which m|ay be ca|
|00000930| 6c 6c 65 64 20 61 66 74 | 65 72 20 74 68 65 20 73 |lled aft|er the s|
|00000940| 74 61 63 6b 73 20 68 61 | 76 65 20 62 65 65 6e 0d |tacks ha|ve been.|
|00000950| 09 72 65 73 65 74 2e 20 | 20 54 68 69 73 20 77 61 |.reset. | This wa|
|00000960| 79 2c 20 54 48 52 4f 57 | 20 63 61 6e 20 62 65 20 |y, THROW| can be |
|00000970| 63 61 6c 6c 65 64 20 77 | 69 74 68 6f 75 74 20 6f |called w|ithout o|
|00000980| 75 72 20 68 61 76 69 6e | 67 20 74 6f 20 6b 6e 6f |ur havin|g to kno|
|00000990| 77 20 69 66 20 61 0d 09 | 6e 6f 6e 2d 64 65 66 61 |w if a..|non-defa|
|000009a0| 75 6c 74 20 65 72 72 6f | 72 20 72 6f 75 74 69 6e |ult erro|r routin|
|000009b0| 65 20 69 73 20 69 6e 73 | 74 61 6c 6c 65 64 20 6f |e is ins|talled o|
|000009c0| 72 20 6e 6f 74 2e 20 20 | 28 20 61 64 64 72 20 6c |r not. |( addr l|
|000009d0| 65 6e 20 29 20 73 70 65 | 63 69 66 69 65 73 0d 09 |en ) spe|cifies..|
|000009e0| 61 6e 20 65 72 72 6f 72 | 20 74 65 78 74 20 73 74 |an error| text st|
|000009f0| 72 69 6e 67 2e 20 20 57 | 65 20 6d 61 79 20 70 61 |ring. W|e may pa|
|00000a00| 73 73 20 28 20 65 72 72 | 23 20 2d 31 20 29 2c 20 |ss ( err|# -1 ), |
|00000a10| 69 6e 20 77 68 69 63 68 | 20 63 61 73 65 20 65 72 |in which| case er|
|00000a20| 72 23 20 69 73 20 61 0d | 09 4d 6f 70 73 20 65 72 |r# is a.|.Mops er|
|00000a30| 72 6f 72 20 6e 75 6d 62 | 65 72 2c 20 77 68 6f 73 |ror numb|er, whos|
|00000a40| 65 20 74 65 78 74 20 63 | 61 6e 20 62 65 20 74 79 |e text c|an be ty|
|00000a50| 70 65 64 20 76 69 61 20 | 54 53 54 52 2e 20 20 46 |ped via |TSTR. F|
|00000a60| 6f 72 20 41 42 4f 52 54 | 2c 20 77 68 69 63 68 0d |or ABORT|, which.|
|00000a70| 09 68 61 73 20 6e 6f 20 | 65 72 72 6f 72 20 73 74 |.has no |error st|
|00000a80| 72 69 6e 67 2c 20 77 65 | 20 70 61 73 73 20 28 20 |ring, we| pass ( |
|00000a90| 30 20 30 20 29 2e 0d 0d | 09 4f 75 72 20 6e 6f 72 |0 0 )...|.Our nor|
|00000aa0| 6d 61 6c 20 65 72 72 6f | 72 20 77 6f 72 64 20 69 |mal erro|r word i|
|00000ab0| 73 20 44 49 45 2c 20 77 | 68 69 63 68 20 63 61 6c |s DIE, w|hich cal|
|00000ac0| 6c 73 20 53 41 56 45 5f | 45 52 52 2c 20 74 68 65 |ls SAVE_|ERR, the|
|00000ad0| 6e 20 63 61 6c 6c 73 0d | 09 54 68 72 6f 77 57 69 |n calls.|.ThrowWi|
|00000ae0| 74 68 49 6e 66 6f 2c 20 | 74 68 65 20 61 6c 74 65 |thInfo, |the alte|
|00000af0| 72 6e 61 74 69 76 65 20 | 74 6f 20 54 48 52 4f 57 |rnative |to THROW|
|00000b00| 2e 0d 2a 29 0d 0d 3a 20 | 73 76 53 74 6b 20 20 7b |..*)..: |svStk {|
|00000b10| 20 73 74 61 72 74 20 66 | 69 6e 69 73 68 20 5e 65 | start f|inish ^e|
|00000b20| 64 20 5c 20 63 6e 74 20 | 2d 2d 20 5e 65 64 27 20 |d \ cnt |-- ^ed' |
|00000b30| 7d 0d 09 66 69 6e 69 73 | 68 20 73 74 61 72 74 20 |}..finis|h start |
|00000b40| 2d 20 20 32 20 3e 3e 20 | 20 2d 3e 20 63 6e 74 09 |- 2 >> | -> cnt.|
|00000b50| 09 5c 20 23 23 20 61 73 | 73 75 6d 65 73 20 34 2d |.\ ## as|sumes 4-|
|00000b60| 62 79 74 65 20 63 65 6c | 6c 73 0d 09 63 6e 74 20 |byte cel|ls..cnt |
|00000b70| 6d 61 78 44 75 6d 70 20 | 6d 69 6e 20 20 2d 3e 20 |maxDump |min -> |
|00000b80| 63 6e 74 0d 09 0d 09 63 | 6e 74 20 20 5e 65 64 20 |cnt....c|nt ^ed |
|00000b90| 21 20 20 31 63 65 6c 6c | 20 2b 2b 3e 20 5e 65 64 |! 1cell| ++> ^ed|
|00000ba0| 0d 09 63 6e 74 20 46 4f | 52 20 20 73 74 61 72 74 |..cnt FO|R start|
|00000bb0| 20 40 20 20 5e 65 64 20 | 21 20 20 31 63 65 6c 6c | @ ^ed |! 1cell|
|00000bc0| 20 2b 2b 3e 20 73 74 61 | 72 74 20 20 31 63 65 6c | ++> sta|rt 1cel|
|00000bd0| 6c 20 2b 2b 3e 20 5e 65 | 64 20 20 4e 45 58 54 0d |l ++> ^e|d NEXT.|
|00000be0| 09 5e 65 64 0d 3b 0d 0d | 3a 20 53 41 56 45 5f 45 |.^ed.;..|: SAVE_E|
|00000bf0| 52 52 20 20 7b 20 61 64 | 64 72 20 6c 65 6e 20 5c |RR { ad|dr len \|
|00000c00| 20 5e 65 64 20 2d 2d 20 | 7d 0d 09 5e 65 72 72 44 | ^ed -- |}..^errD|
|00000c10| 75 6d 70 20 2d 3e 20 5e | 65 64 0d 09 6c 65 6e 09 |ump -> ^|ed..len.|
|00000c20| 09 5e 65 64 20 21 09 31 | 63 65 6c 6c 20 2b 2b 3e |.^ed !.1|cell ++>|
|00000c30| 20 5e 65 64 0d 09 61 64 | 64 72 09 5e 65 64 20 21 | ^ed..ad|dr.^ed !|
|00000c40| 09 31 63 65 6c 6c 20 2b | 2b 3e 20 5e 65 64 09 09 |.1cell +|+> ^ed..|
|00000c50| 5c 20 73 61 76 65 20 74 | 68 65 20 74 77 6f 20 70 |\ save t|he two p|
|00000c60| 61 72 6d 73 0d 09 28 5e | 62 61 73 65 29 09 5e 65 |arms..(^|base).^e|
|00000c70| 64 20 21 09 31 63 65 6c | 6c 20 2b 2b 3e 20 5e 65 |d !.1cel|l ++> ^e|
|00000c80| 64 09 09 5c 20 73 61 76 | 65 20 70 74 72 20 74 6f |d..\ sav|e ptr to|
|00000c90| 20 63 75 72 72 65 6e 74 | 20 6f 62 6a 20 28 2d 31 | current| obj (-1|
|00000ca0| 20 69 66 20 6e 6f 6e 65 | 29 0d 09 53 50 20 53 50 | if none|)..SP SP|
|00000cb0| 30 20 5e 65 64 20 73 76 | 53 74 6b 20 20 2d 3e 20 |0 ^ed sv|Stk -> |
|00000cc0| 5e 65 64 09 09 09 5c 20 | 73 61 76 65 20 64 61 74 |^ed...\ |save dat|
|00000cd0| 61 20 73 74 61 63 6b 0d | 09 52 50 20 32 30 20 2b |a stack.|.RP 20 +|
|00000ce0| 09 09 09 09 09 09 09 09 | 5c 20 64 6f 6e 27 74 20 |........|\ don't |
|00000cf0| 77 61 6e 74 20 74 6f 20 | 64 69 73 70 6c 61 79 20 |want to |display |
|00000d00| 74 68 65 20 52 73 74 61 | 63 6b 0d 09 09 09 09 09 |the Rsta|ck......|
|00000d10| 09 09 09 09 09 5c 20 20 | 63 65 6c 6c 73 20 77 69 |.....\ |cells wi|
|00000d20| 74 68 20 6f 75 72 20 65 | 72 72 6f 72 2d 68 61 6e |th our e|rror-han|
|00000d30| 64 6c 69 6e 67 20 63 61 | 6c 6c 73 0d 09 09 09 09 |dling ca|lls.....|
|00000d40| 09 09 09 09 09 09 5c 20 | 20 61 6e 64 20 73 61 76 |......\ | and sav|
|00000d50| 65 64 20 72 65 67 73 0d | 09 52 50 30 20 5e 65 64 |ed regs.|.RP0 ^ed|
|00000d60| 20 73 76 53 74 6b 20 20 | 64 72 6f 70 09 09 09 09 | svStk |drop....|
|00000d70| 09 5c 20 73 61 76 65 20 | 72 65 74 75 72 6e 20 73 |.\ save |return s|
|00000d80| 74 61 63 6b 0d 3b 0d 0d | 0d 5c 20 2e 45 52 52 20 |tack.;..|.\ .ERR |
|00000d90| 64 69 73 70 6c 61 79 73 | 20 74 68 65 20 65 72 72 |displays| the err|
|00000da0| 6f 72 20 69 6e 66 6f 20 | 73 61 76 65 64 20 62 79 |or info |saved by|
|00000db0| 20 53 41 56 45 5f 45 52 | 52 2e 20 20 54 68 65 20 | SAVE_ER|R. The |
|00000dc0| 76 61 6c 75 65 20 2e 73 | 74 6b 4c 69 6d 69 74 0d |value .s|tkLimit.|
|00000dd0| 5c 20 20 67 69 76 65 73 | 20 61 20 6d 61 78 69 6d |\ gives| a maxim|
|00000de0| 75 6d 20 6f 66 20 73 74 | 61 63 6b 20 63 65 6c 6c |um of st|ack cell|
|00000df0| 73 20 64 75 6d 70 65 64 | 20 2d 2d 20 74 68 69 73 |s dumped| -- this|
|00000e00| 20 63 61 6e 20 62 65 20 | 75 73 65 64 20 74 6f 20 | can be |used to |
|00000e10| 6b 65 65 70 0d 5c 20 20 | 69 6e 66 6f 20 66 72 6f |keep.\ |info fro|
|00000e20| 6d 20 73 63 72 6f 6c 6c | 69 6e 67 20 6f 66 66 20 |m scroll|ing off |
|00000e30| 74 68 65 20 73 63 72 65 | 65 6e 2e 0d 0d 62 69 67 |the scre|en...big|
|00000e40| 23 09 76 61 6c 75 65 09 | 2e 73 74 6b 5f 6c 69 6d |#.value.|.stk_lim|
|00000e50| 69 74 0d 66 61 6c 73 65 | 09 76 61 6c 75 65 09 64 |it.false|.value.d|
|00000e60| 75 6d 70 69 6e 67 3f 0d | 0d 3a 20 2e 45 52 52 20 |umping?.|.: .ERR |
|00000e70| 20 7b 20 5c 20 61 64 64 | 72 20 6c 65 6e 20 5e 6f | { \ add|r len ^o|
|00000e80| 62 6a 20 5c 20 5e 65 64 | 20 2d 2d 20 7d 0d 09 64 |bj \ ^ed| -- }..d|
|00000e90| 75 6d 70 69 6e 67 3f 20 | 20 49 46 20 63 72 20 20 |umping? | IF cr |
|00000ea0| 45 58 49 54 20 20 54 48 | 45 4e 0d 0d 09 5e 65 72 |EXIT TH|EN...^er|
|00000eb0| 72 44 75 6d 70 20 2d 3e | 20 5e 65 64 0d 09 5e 65 |rDump ->| ^ed..^e|
|00000ec0| 64 20 40 20 20 2d 3e 20 | 6c 65 6e 09 09 31 63 65 |d @ -> |len..1ce|
|00000ed0| 6c 6c 20 2b 2b 3e 20 5e | 65 64 0d 09 5e 65 64 20 |ll ++> ^|ed..^ed |
|00000ee0| 40 20 20 2d 3e 20 61 64 | 64 72 09 09 31 63 65 6c |@ -> ad|dr..1cel|
|00000ef0| 6c 20 2b 2b 3e 20 5e 65 | 64 0d 0d 09 73 65 74 46 |l ++> ^e|d...setF|
|00000f00| 77 69 6e 64 09 5c 20 52 | 65 64 69 72 65 63 74 65 |wind.\ R|edirecte|
|00000f10| 64 20 74 6f 20 61 62 6f | 72 74 20 77 6f 72 64 20 |d to abo|rt word |
|00000f20| 69 6e 20 69 6e 73 74 61 | 6c 6c 65 64 20 61 70 70 |in insta|lled app|
|00000f30| 6c 69 63 6e 73 2c 20 73 | 6f 0d 09 09 09 09 5c 20 |licns, s|o.....\ |
|00000f40| 20 77 65 20 64 6f 6e 27 | 74 20 74 72 79 20 74 6f | we don'|t try to|
|00000f50| 20 74 79 70 65 20 74 6f | 20 74 68 65 20 4d 6f 70 | type to| the Mop|
|00000f60| 73 20 77 69 6e 64 6f 77 | 2c 20 77 68 69 63 68 20 |s window|, which |
|00000f70| 6d 61 79 0d 09 09 09 09 | 5c 20 20 77 65 6c 6c 20 |may.....|\ well |
|00000f80| 6e 6f 74 20 65 78 69 73 | 74 2e 0d 09 74 72 75 65 |not exis|t...true|
|00000f90| 20 2d 3e 20 64 75 6d 70 | 69 6e 67 3f 0d 09 35 20 | -> dump|ing?..5 |
|00000fa0| 62 65 65 70 20 20 63 72 | 0d 09 6c 65 6e 20 30 3e |beep cr|..len 0>|
|00000fb0| 0d 09 49 46 09 61 64 64 | 72 20 6c 65 6e 20 74 79 |..IF.add|r len ty|
|00000fc0| 70 65 20 20 73 70 61 63 | 65 09 5c 20 74 68 65 72 |pe spac|e.\ ther|
|00000fd0| 65 27 73 20 61 6e 20 65 | 72 72 6f 72 20 73 74 72 |e's an e|rror str|
|00000fe0| 69 6e 67 0d 09 45 4c 53 | 45 0d 09 09 6c 65 6e 20 |ing..ELS|E...len |
|00000ff0| 30 3c 0d 09 09 49 46 09 | 09 09 09 09 09 5c 20 6e |0<...IF.|.....\ n|
|00001000| 6f 20 65 72 72 6f 72 20 | 73 74 72 69 6e 67 20 2d |o error |string -|
|00001010| 20 22 61 64 64 72 22 20 | 69 73 0d 09 09 09 09 09 | "addr" |is......|
|00001020| 09 09 09 5c 20 20 72 65 | 61 6c 6c 79 20 61 6e 20 |...\ re|ally an |
|00001030| 65 72 72 20 6e 75 6d 62 | 65 72 0d 09 09 09 61 64 |err numb|er....ad|
|00001040| 64 72 20 31 30 20 75 3e | 09 09 09 5c 20 65 72 72 |dr 10 u>|...\ err|
|00001050| 23 20 31 2d 31 30 20 64 | 6f 6e 27 74 20 68 61 76 |# 1-10 d|on't hav|
|00001060| 65 20 6d 65 73 73 61 67 | 65 73 20 2d 20 77 65 0d |e messag|es - we.|
|00001070| 09 09 09 09 09 09 09 09 | 5c 20 20 63 61 6e 20 75 |........|\ can u|
|00001080| 73 65 20 74 68 65 6d 20 | 66 6f 72 20 73 70 65 63 |se them |for spec|
|00001090| 69 61 6c 20 74 68 69 6e | 67 73 0d 09 09 09 49 46 |ial thin|gs....IF|
|000010a0| 20 20 61 64 64 72 20 74 | 79 70 65 45 72 72 4e 75 | addr t|ypeErrNu|
|000010b0| 6d 20 20 54 48 45 4e 0d | 09 09 54 48 45 4e 0d 09 |m THEN.|..THEN..|
|000010c0| 54 48 45 4e 0d 0d 09 63 | 72 20 20 73 72 63 2d 73 |THEN...c|r src-s|
|000010d0| 74 61 72 74 20 73 72 63 | 2d 6c 65 6e 20 74 79 70 |tart src|-len typ|
|000010e0| 65 20 20 63 72 09 5c 20 | 74 79 70 65 20 65 72 72 |e cr.\ |type err|
|000010f0| 6f 72 20 6c 69 6e 65 0d | 09 3e 69 6e 20 40 20 31 |or line.|.>in @ 1|
|00001100| 2d 20 73 70 61 63 65 73 | 20 20 26 20 5e 20 65 6d |- spaces| & ^ em|
|00001110| 69 74 20 20 63 72 09 5c | 20 61 6e 64 20 65 72 72 |it cr.\| and err|
|00001120| 6f 72 20 70 6f 73 69 74 | 69 6f 6e 20 6d 61 72 6b |or posit|ion mark|
|00001130| 65 72 0d 0d 09 5e 65 64 | 20 40 20 20 20 31 63 65 |er...^ed| @ 1ce|
|00001140| 6c 6c 20 2b 2b 3e 20 5e | 65 64 0d 09 2d 3e 20 5e |ll ++> ^|ed..-> ^|
|00001150| 6f 62 6a 0d 09 5e 6f 62 | 6a 20 2d 31 20 3c 3e 0d |obj..^ob|j -1 <>.|
|00001160| 09 49 46 09 2e 22 20 43 | 75 72 72 65 6e 74 20 6f |.IF.." C|urrent o|
|00001170| 62 6a 65 63 74 3a 20 20 | 22 0d 09 09 5e 6f 62 6a |bject: |"...^obj|
|00001180| 20 2e 6f 62 6a 4f 72 52 | 41 20 20 63 72 0d 09 54 | .objOrR|A cr..T|
|00001190| 48 45 4e 0d 0d 09 5e 65 | 64 20 40 20 20 63 65 6c |HEN...^e|d @ cel|
|000011a0| 6c 73 20 2d 3e 20 6c 65 | 6e 20 20 20 31 63 65 6c |ls -> le|n 1cel|
|000011b0| 6c 20 2b 2b 3e 20 5e 65 | 64 0d 5c 09 2e 73 74 6b |l ++> ^e|d.\..stk|
|000011c0| 5f 6c 69 6d 69 74 20 32 | 64 75 70 20 3e 20 69 66 |_limit 2|dup > if|
|000011d0| 20 6e 69 70 20 65 6c 73 | 65 20 64 72 6f 70 20 74 | nip els|e drop t|
|000011e0| 68 65 6e 20 20 63 65 6c | 6c 73 20 20 2d 3e 20 6c |hen cel|ls -> l|
|000011f0| 65 6e 09 0d 09 2e 22 20 | 53 74 61 63 6b 3a 22 0d |en...." |Stack:".|
|00001200| 09 5e 65 64 20 6c 65 6e | 20 6f 76 65 72 20 2b 20 |.^ed len| over + |
|00001210| 66 61 6c 73 65 20 20 28 | 2e 73 74 6b 29 09 6c 65 |false (|.stk).le|
|00001220| 6e 20 20 20 2b 2b 3e 20 | 5e 65 64 0d 09 5e 65 64 |n ++> |^ed..^ed|
|00001230| 20 40 20 20 63 65 6c 6c | 73 20 2d 3e 20 6c 65 6e | @ cell|s -> len|
|00001240| 20 20 20 31 63 65 6c 6c | 20 2b 2b 3e 20 5e 65 64 | 1cell| ++> ^ed|
|00001250| 0d 5c 09 2e 73 74 6b 5f | 6c 69 6d 69 74 20 6d 69 |.\..stk_|limit mi|
|00001260| 6e 20 20 63 65 6c 6c 73 | 20 20 2d 3e 20 6c 65 6e |n cells| -> len|
|00001270| 09 0d 09 2e 22 20 52 65 | 74 75 72 6e 20 73 74 61 |...." Re|turn sta|
|00001280| 63 6b 3a 22 0d 09 5e 65 | 64 20 6c 65 6e 20 6f 76 |ck:"..^e|d len ov|
|00001290| 65 72 20 2b 20 74 72 75 | 65 20 20 28 2e 73 74 6b |er + tru|e (.stk|
|000012a0| 29 0d 09 62 69 67 23 20 | 2d 3e 20 2e 73 74 6b 5f |)..big# |-> .stk_|
|000012b0| 6c 69 6d 69 74 0d 09 66 | 61 6c 73 65 20 2d 3e 20 |limit..f|alse -> |
|000012c0| 64 75 6d 70 69 6e 67 3f | 0d 3b 0d 0d 66 6f 72 77 |dumping?|.;..forw|
|000012d0| 61 72 64 20 73 65 74 75 | 70 5f 63 67 0d 0d 3a 20 |ard setu|p_cg..: |
|000012e0| 64 66 6c 74 5f 61 62 6f | 72 74 0d 09 73 65 74 75 |dflt_abo|rt..setu|
|000012f0| 70 5f 63 67 09 09 09 5c | 20 61 20 62 69 74 20 64 |p_cg...\| a bit d|
|00001300| 72 61 73 74 69 63 2c 20 | 62 75 74 20 69 66 20 74 |rastic, |but if t|
|00001310| 68 65 20 65 72 72 6f 72 | 20 69 73 20 61 6e 20 69 |he error| is an i|
|00001320| 6e 64 65 78 0d 09 09 09 | 09 09 09 5c 20 20 6f 75 |ndex....|...\ ou|
|00001330| 74 20 6f 66 20 72 61 6e | 67 65 20 6f 6e 20 6f 6e |t of ran|ge on on|
|00001340| 65 20 6f 66 20 6f 75 72 | 20 72 65 67 69 73 74 65 |e of our| registe|
|00001350| 72 20 61 72 72 61 79 73 | 2c 0d 09 09 09 09 09 09 |r arrays|,.......|
|00001360| 5c 20 20 77 65 27 6c 6c | 20 6a 75 73 74 20 6b 65 |\ we'll| just ke|
|00001370| 65 70 20 68 69 74 74 69 | 6e 67 20 74 68 65 20 65 |ep hitti|ng the e|
|00001380| 72 72 6f 72 21 0d 09 6f | 72 69 67 43 44 50 20 49 |rror!..o|rigCDP I|
|00001390| 46 20 20 6f 72 69 67 43 | 44 50 20 2d 3e 20 43 44 |F origC|DP -> CD|
|000013a0| 50 20 20 54 48 45 4e 0d | 09 61 62 6f 72 74 56 65 |P THEN.|.abortVe|
|000013b0| 63 0d 09 53 50 30 20 34 | 2b 20 53 50 21 20 20 52 |c..SP0 4|+ SP! R|
|000013c0| 50 30 20 52 50 21 20 20 | 46 53 50 30 20 31 36 20 |P0 RP! |FSP0 16 |
|000013d0| 2b 20 20 46 53 50 21 0d | 09 64 65 63 69 6d 61 6c |+ FSP!.|.decimal|
|000013e0| 0d 09 30 20 20 23 54 49 | 42 20 21 20 20 73 65 74 |..0 #TI|B ! set|
|000013f0| 5f 73 6f 75 72 63 65 20 | 20 2b 63 75 72 73 0d 09 |_source | +curs..|
|00001400| 30 20 2d 3e 20 63 73 74 | 61 74 65 0d 09 66 61 6c |0 -> cst|ate..fal|
|00001410| 73 65 20 2d 3e 20 6c 6f | 63 61 6c 3f 0d 09 30 20 |se -> lo|cal?..0 |
|00001420| 2d 3e 20 6d 6f 64 5f 73 | 65 67 23 0d 09 51 55 49 |-> mod_s|eg#..QUI|
|00001430| 54 0d 3b 0d 0d 3a 20 64 | 66 6c 74 5f 61 62 71 0d |T.;..: d|flt_abq.|
|00001440| 09 65 72 72 5f 69 6e 66 | 6f 5f 76 61 6c 69 64 3f |.err_inf|o_valid?|
|00001450| 0d 09 49 46 09 09 33 20 | 2d 3e 20 2e 73 74 6b 5f |..IF..3 |-> .stk_|
|00001460| 6c 69 6d 69 74 20 20 2e | 65 72 72 0d 09 45 4c 53 |limit .|err..ELS|
|00001470| 45 09 74 79 70 65 45 72 | 72 4e 75 6d 0d 09 54 48 |E.typeEr|rNum..TH|
|00001480| 45 4e 0d 09 64 66 6c 74 | 5f 61 62 6f 72 74 0d 3b |EN..dflt|_abort.;|
|00001490| 0d 0d 0d 66 6f 72 77 61 | 72 64 09 09 44 46 4c 54 |...forwa|rd..DFLT|
|000014a0| 5f 44 49 45 0d 0d 3a 20 | 28 64 64 69 65 29 0d 09 |_DIE..: |(ddie)..|
|000014b0| 73 65 74 46 77 69 6e 64 | 0d 09 30 20 2d 3e 20 28 |setFwind|..0 -> (|
|000014c0| 65 72 72 23 29 09 09 09 | 5c 20 43 6c 65 61 72 20 |err#)...|\ Clear |
|000014d0| 65 72 72 6f 72 20 69 6e | 64 69 63 61 74 6f 72 20 |error in|dicator |
|000014e0| 66 72 6f 6d 20 41 70 70 | 6c 65 45 76 65 6e 74 73 |from App|leEvents|
|000014f0| 0d 09 64 66 6c 74 5f 61 | 62 71 20 20 3b 09 09 09 |..dflt_a|bq ;...|
|00001500| 5c 20 44 69 73 70 6c 61 | 79 20 65 72 72 6f 72 20 |\ Displa|y error |
|00001510| 69 6e 66 6f 20 61 6e 64 | 20 61 62 6f 72 74 0d 0d |info and| abort..|
|00001520| 3a 66 20 64 66 6c 74 5f | 64 69 65 09 09 28 64 64 |:f dflt_|die..(dd|
|00001530| 69 65 29 20 20 3b 66 0d | 0d 0d 28 2a 09 43 41 54 |ie) ;f.|..(*.CAT|
|00001540| 43 48 20 20 28 20 78 74 | 20 2d 2d 20 6e 20 29 20 |CH ( xt| -- n ) |
|00001550| 20 45 58 45 43 55 54 45 | 73 20 74 68 65 20 78 74 | EXECUTE|s the xt|
|00001560| 2e 20 20 49 66 20 74 68 | 65 20 65 78 65 63 75 74 |. If th|e execut|
|00001570| 65 64 20 77 6f 72 64 20 | 64 6f 65 73 20 61 20 54 |ed word |does a T|
|00001580| 48 52 4f 57 2c 0d 09 6e | 20 69 73 20 74 68 65 20 |HROW,..n| is the |
|00001590| 65 72 72 6f 72 20 63 6f | 64 65 20 70 61 73 73 65 |error co|de passe|
|000015a0| 64 20 74 6f 20 54 48 52 | 4f 57 2e 20 20 49 66 20 |d to THR|OW. If |
|000015b0| 69 74 20 64 6f 65 73 6e | 27 74 20 20 64 6f 20 61 |it doesn|'t do a|
|000015c0| 20 54 48 52 4f 57 2c 20 | 6e 20 69 73 0d 09 7a 65 | THROW, |n is..ze|
|000015d0| 72 6f 2e 20 20 49 66 20 | 69 74 20 64 6f 65 73 20 |ro. If |it does |
|000015e0| 61 20 54 48 52 4f 57 2c | 20 63 6f 6e 74 72 6f 6c |a THROW,| control|
|000015f0| 20 64 6f 65 73 6e 27 74 | 20 72 65 74 75 72 6e 20 | doesn't| return |
|00001600| 74 6f 20 43 41 54 43 48 | 2c 20 62 75 74 20 74 6f |to CATCH|, but to|
|00001610| 0d 09 77 68 6f 65 76 65 | 72 20 63 61 6c 6c 65 64 |..whoeve|r called|
|00001620| 20 43 41 54 43 48 2e 20 | 20 53 65 65 20 74 68 65 | CATCH. | See the|
|00001630| 20 53 74 61 6e 64 61 72 | 64 20 66 6f 72 20 61 20 | Standar|d for a |
|00001640| 66 75 6c 6c 20 64 65 73 | 63 72 69 70 74 69 6f 6e |full des|cription|
|00001650| 2e 0d 09 0d 09 57 65 20 | 68 61 76 65 20 74 6f 20 |.....We |have to |
|00001660| 75 73 65 20 61 73 73 65 | 6d 62 6c 79 20 66 6f 72 |use asse|mbly for|
|00001670| 20 73 65 74 74 69 6e 67 | 20 74 68 69 73 20 75 70 | setting| this up|
|00001680| 2c 20 73 69 6e 63 65 20 | 77 65 27 72 65 20 6d 61 |, since |we're ma|
|00001690| 6e 69 70 75 6c 61 74 69 | 6e 67 0d 09 72 65 67 69 |nipulati|ng..regi|
|000016a0| 73 74 65 72 73 2e 0d 2a | 29 0d 0d 30 09 76 61 6c |sters..*|)..0.val|
|000016b0| 75 65 09 54 48 52 4f 57 | 5f 48 41 4e 44 4c 45 52 |ue.THROW|_HANDLER|
|000016c0| 09 09 5c 20 68 6f 6c 64 | 73 20 74 68 65 20 61 64 |..\ hold|s the ad|
|000016d0| 64 72 20 6f 66 20 74 68 | 65 20 63 75 72 72 65 6e |dr of th|e curren|
|000016e0| 74 20 74 68 72 6f 77 20 | 68 61 6e 64 6c 65 72 0d |t throw |handler.|
|000016f0| 09 09 09 09 09 09 09 09 | 5c 20 20 66 72 61 6d 65 |........|\ frame|
|00001700| 2c 20 6f 72 20 7a 65 72 | 6f 20 69 66 20 6e 6f 6e |, or zer|o if non|
|00001710| 65 2e 0d 0d 3a 20 66 72 | 61 6d 65 45 72 72 0d 09 |e...: fr|ameErr..|
|00001720| 2e 22 20 52 65 74 75 72 | 6e 20 73 74 61 63 6b 20 |." Retur|n stack |
|00001730| 63 6c 6f 62 62 65 72 65 | 64 21 22 0d 09 64 66 6c |clobbere|d!"..dfl|
|00001740| 74 5f 61 62 6f 72 74 0d | 3b 0d 0d 0d 3a 20 6e 6f |t_abort.|;...: no|
|00001750| 5f 74 68 72 6f 77 5f 68 | 61 6e 64 6c 65 72 20 28 |_throw_h|andler (|
|00001760| 20 6e 20 2d 2d 20 29 09 | 09 5c 20 62 72 61 6e 63 | n -- ).|.\ branc|
|00001770| 68 65 64 20 74 6f 20 66 | 72 6f 6d 20 28 54 48 52 |hed to f|rom (THR|
|00001780| 4f 57 29 20 69 66 20 74 | 68 65 72 65 27 73 20 6e |OW) if t|here's n|
|00001790| 6f 0d 09 09 09 09 09 09 | 09 09 5c 20 20 68 61 6e |o.......|..\ han|
|000017a0| 64 6c 65 72 2e 20 20 54 | 61 6b 65 73 20 74 68 65 |dler. T|akes the|
|000017b0| 20 64 65 66 61 75 6c 74 | 20 61 63 74 69 6f 6e 2e | default| action.|
|000017c0| 0d 0d 09 65 72 72 6f 72 | 56 65 63 09 09 09 09 09 |...error|Vec.....|
|000017d0| 5c 20 73 65 74 20 74 6f | 20 65 72 72 6f 72 20 77 |\ set to| error w|
|000017e0| 6f 72 64 20 69 6e 20 69 | 6e 73 74 61 6c 6c 65 64 |ord in i|nstalled|
|000017f0| 20 61 70 70 73 2c 20 73 | 6f 0d 09 09 09 09 09 09 | apps, s|o.......|
|00001800| 09 09 5c 20 20 77 65 20 | 63 61 6e 20 62 61 69 6c |..\ we |can bail|
|00001810| 20 6f 75 74 20 77 69 74 | 68 6f 75 74 20 4d 6f 70 | out wit|hout Mop|
|00001820| 73 20 64 65 76 65 6c 6f | 70 6d 65 6e 74 0d 09 09 |s develo|pment...|
|00001830| 09 09 09 09 09 09 5c 20 | 20 65 6e 76 69 72 6f 6e |......\ | environ|
|00001840| 6d 65 6e 74 20 65 72 72 | 6f 72 20 68 61 6e 64 6c |ment err|or handl|
|00001850| 69 6e 67 0d 0d 09 64 75 | 70 20 2d 31 20 3d 20 49 |ing...du|p -1 = I|
|00001860| 46 20 20 64 66 6c 74 5f | 61 62 6f 72 74 09 54 48 |F dflt_|abort.TH|
|00001870| 45 4e 09 5c 20 2d 31 3a | 20 64 6f 20 64 65 66 61 |EN.\ -1:| do defa|
|00001880| 75 6c 74 20 41 42 4f 52 | 54 0d 09 64 75 70 20 2d |ult ABOR|T..dup -|
|00001890| 32 20 3d 20 49 46 20 20 | 64 66 6c 74 5f 61 62 71 |2 = IF |dflt_abq|
|000018a0| 09 54 48 45 4e 09 5c 20 | 2d 32 3a 20 64 6f 20 64 |.THEN.\ |-2: do d|
|000018b0| 65 66 61 75 6c 74 20 41 | 42 4f 52 54 22 0d 09 64 |efault A|BORT"..d|
|000018c0| 66 6c 74 5f 64 69 65 0d | 3b 0d 0d 0d 3a 70 70 63 |flt_die.|;...:ppc|
|000018d0| 5f 63 6f 64 65 20 20 43 | 41 54 43 48 0d 0d 09 72 |_code C|ATCH...r|
|000018e0| 30 09 09 09 09 09 6d 66 | 6c 72 2c 0d 09 72 30 09 |0.....mf|lr,..r0.|
|000018f0| 09 2d 34 09 72 52 50 09 | 09 73 74 77 2c 09 5c 20 |.-4.rRP.|.stw,.\ |
|00001900| 73 61 76 65 20 6c 72 20 | 2d 20 6f 75 72 20 72 65 |save lr |- our re|
|00001910| 74 75 72 6e 20 61 64 64 | 72 0d 09 0d 09 72 33 09 |turn add|r....r3.|
|00001920| 09 2d 31 36 09 72 52 50 | 09 09 73 74 77 75 2c 09 |.-16.rRP|..stwu,.|
|00001930| 5c 20 6e 6f 77 20 73 61 | 76 65 20 31 20 63 61 63 |\ now sa|ve 1 cac|
|00001940| 68 65 64 20 73 74 61 63 | 6b 20 63 65 6c 6c 20 28 |hed stac|k cell (|
|00001950| 72 33 29 2e 20 20 72 34 | 20 69 73 0d 09 09 09 09 |r3). r4| is.....|
|00001960| 09 09 09 09 5c 20 20 78 | 74 20 66 6f 72 20 45 58 |....\ x|t for EX|
|00001970| 45 43 55 54 45 20 73 6f | 20 77 65 20 64 6f 6e 27 |ECUTE so| we don'|
|00001980| 74 20 6e 65 65 64 20 74 | 6f 20 73 61 76 65 20 69 |t need t|o save i|
|00001990| 74 2e 0d 09 09 09 09 09 | 09 09 09 5c 20 4e 6f 74 |t.......|...\ Not|
|000019a0| 65 20 72 52 50 20 6d 75 | 73 74 20 73 74 61 79 20 |e rRP mu|st stay |
|000019b0| 38 2d 62 79 74 65 20 61 | 6c 69 67 6e 65 64 0d 0d |8-byte a|ligned..|
|000019c0| 09 27 20 73 61 76 65 73 | 20 32 2b 09 09 09 62 6c |.' saves| 2+...bl|
|000019d0| 2c 0d 09 72 52 50 09 09 | 2d 34 38 09 09 09 61 64 |,..rRP..|-48...ad|
|000019e0| 64 69 2c 09 5c 20 6e 6f | 77 20 61 6c 6c 20 6f 75 |di,.\ no|w all ou|
|000019f0| 72 20 47 50 52 20 6c 6f | 63 61 6c 73 20 28 26 20 |r GPR lo|cals (& |
|00001a00| 6b 65 65 70 20 72 52 50 | 20 61 6c 69 67 6e 65 64 |keep rRP| aligned|
|00001a10| 29 0d 09 27 20 66 73 61 | 76 65 73 20 32 2b 09 09 |)..' fsa|ves 2+..|
|00001a20| 09 62 6c 2c 0d 09 72 52 | 50 09 09 2d 38 38 09 09 |.bl,..rR|P..-88..|
|00001a30| 09 61 64 64 69 2c 09 5c | 20 61 6e 64 20 61 6c 6c |.addi,.\| and all|
|00001a40| 20 6f 75 72 20 46 50 52 | 20 6c 6f 63 61 6c 73 0d | our FPR| locals.|
|00001a50| 0d 09 72 30 09 09 24 20 | 37 38 39 41 09 09 6c 69 |..r0..$ |789A..li|
|00001a60| 2c 0d 09 72 30 09 09 2d | 31 36 09 72 52 50 09 09 |,..r0..-|16.rRP..|
|00001a70| 73 74 77 75 2c 09 5c 20 | 63 72 65 61 74 65 20 66 |stwu,.\ |create f|
|00001a80| 72 61 6d 65 20 68 65 61 | 64 65 72 20 61 6e 64 20 |rame hea|der and |
|00001a90| 73 74 6f 72 65 20 6d 61 | 72 6b 65 72 0d 09 72 53 |store ma|rker..rS|
|00001aa0| 50 09 09 34 09 72 52 50 | 09 09 73 74 77 2c 09 5c |P..4.rRP|..stw,.\|
|00001ab0| 20 73 61 76 65 20 53 50 | 20 61 74 20 6f 66 66 73 | save SP| at offs|
|00001ac0| 20 34 0d 09 72 30 09 09 | 27 20 74 68 72 6f 77 5f | 4..r0..|' throw_|
|00001ad0| 68 61 6e 64 6c 65 72 20 | 32 2b 20 40 61 62 73 36 |handler |2+ @abs6|
|00001ae0| 20 64 69 63 61 64 64 72 | 0d 09 09 09 09 09 09 6c | dicaddr|.......l|
|00001af0| 77 7a 2c 0d 09 72 30 09 | 09 38 09 72 52 50 09 09 |wz,..r0.|.8.rRP..|
|00001b00| 73 74 77 2c 09 5c 20 61 | 6e 64 20 70 72 65 76 69 |stw,.\ a|nd previ|
|00001b10| 6f 75 73 20 68 61 6e 64 | 6c 65 72 20 61 64 64 72 |ous hand|ler addr|
|00001b20| 20 61 74 20 6f 66 66 73 | 20 38 0d 09 72 52 50 09 | at offs| 8..rRP.|
|00001b30| 09 27 20 74 68 72 6f 77 | 5f 68 61 6e 64 6c 65 72 |.' throw|_handler|
|00001b40| 20 32 2b 20 40 61 62 73 | 36 20 64 69 63 61 64 64 | 2+ @abs|6 dicadd|
|00001b50| 72 0d 09 09 09 09 09 09 | 73 74 77 2c 09 5c 20 61 |r.......|stw,.\ a|
|00001b60| 6e 64 20 73 74 6f 72 65 | 20 52 50 20 28 66 72 61 |nd store| RP (fra|
|00001b70| 6d 65 20 70 74 72 29 20 | 61 73 20 6e 65 77 20 68 |me ptr) |as new h|
|00001b80| 61 6e 64 6c 65 72 20 61 | 64 64 72 0d 0d 27 20 65 |andler a|ddr..' e|
|00001b90| 78 65 63 75 74 65 20 32 | 2b 09 09 09 62 6c 2c 09 |xecute 2|+...bl,.|
|00001ba0| 09 5c 20 65 78 65 63 75 | 74 65 20 74 68 65 20 70 |.\ execu|te the p|
|00001bb0| 61 73 73 65 64 2d 69 6e | 20 78 74 2e 20 20 4e 6f |assed-in| xt. No|
|00001bc0| 74 65 0d 09 09 09 09 09 | 09 09 09 5c 20 20 74 68 |te......|...\ th|
|00001bd0| 69 73 20 63 61 6c 6c 20 | 6f 6e 6c 79 20 72 65 74 |is call |only ret|
|00001be0| 75 72 6e 73 20 69 66 20 | 54 48 52 4f 57 0d 09 09 |urns if |THROW...|
|00001bf0| 09 09 09 09 09 09 5c 20 | 20 69 73 6e 27 74 20 64 |......\ | isn't d|
|00001c00| 6f 6e 65 2e 0d 0d 09 72 | 30 09 09 30 09 72 52 50 |one....r|0..0.rRP|
|00001c10| 09 09 6c 77 7a 2c 09 5c | 20 63 68 65 63 6b 20 6f |..lwz,.\| check o|
|00001c20| 75 72 20 73 70 65 63 69 | 61 6c 20 6d 61 72 6b 65 |ur speci|al marke|
|00001c30| 72 20 69 73 20 73 74 69 | 6c 6c 0d 09 72 30 09 09 |r is sti|ll..r0..|
|00001c40| 24 20 37 38 39 41 09 09 | 63 6d 70 6c 69 2c 09 5c |$ 789A..|cmpli,.\|
|00001c50| 20 20 6f 6e 20 74 6f 70 | 20 6f 66 20 72 74 6e 20 | on top| of rtn |
|00001c60| 73 74 6b 0d 20 65 71 20 | 69 66 2c 09 09 09 09 09 |stk. eq |if,.....|
|00001c70| 09 09 5c 20 79 65 70 2c | 20 61 6c 6c 20 4f 4b 0d |..\ yep,| all OK.|
|00001c80| 20 09 72 30 09 09 38 09 | 72 52 50 09 09 6c 77 7a | .r0..8.|rRP..lwz|
|00001c90| 2c 09 5c 20 67 65 74 20 | 70 72 65 76 20 74 68 72 |,.\ get |prev thr|
|00001ca0| 6f 77 5f 68 61 6e 64 6c | 65 72 20 66 72 6f 6d 20 |ow_handl|er from |
|00001cb0| 6f 66 66 73 20 38 0d 20 | 09 72 30 09 27 20 74 68 |offs 8. |.r0.' th|
|00001cc0| 72 6f 77 5f 68 61 6e 64 | 6c 65 72 20 32 2b 20 40 |row_hand|ler 2+ @|
|00001cd0| 61 62 73 36 20 20 64 69 | 63 61 64 64 72 0d 20 09 |abs6 di|caddr. .|
|00001ce0| 09 09 09 09 09 73 74 77 | 2c 09 5c 20 72 65 73 74 |.....stw|,.\ rest|
|00001cf0| 6f 72 65 20 70 72 65 76 | 69 6f 75 73 20 74 68 72 |ore prev|ious thr|
|00001d00| 6f 77 5f 68 61 6e 64 6c | 65 72 0d 09 0d 20 09 72 |ow_handl|er... .r|
|00001d10| 52 50 09 09 72 52 50 09 | 31 36 38 09 09 61 64 64 |RP..rRP.|168..add|
|00001d20| 69 2c 09 5c 20 64 65 6c | 65 74 65 20 72 65 73 74 |i,.\ del|ete rest|
|00001d30| 20 6f 66 20 66 72 61 6d | 65 20 2d 20 61 6c 6c 20 | of fram|e - all |
|00001d40| 72 65 67 73 20 4f 4b 20 | 61 6c 72 65 61 64 79 0d |regs OK |already.|
|00001d50| 20 09 72 30 09 09 2d 34 | 09 72 52 50 09 09 6c 77 | .r0..-4|.rRP..lw|
|00001d60| 7a 2c 09 5c 20 72 65 73 | 74 6f 72 65 20 6c 72 0d |z,.\ res|tore lr.|
|00001d70| 20 09 72 30 09 09 09 09 | 09 6d 74 6c 72 2c 0d 5c | .r0....|.mtlr,.\|
|00001d80| 20 09 72 33 09 09 2d 34 | 09 72 53 50 09 09 73 74 | .r3..-4|.rSP..st|
|00001d90| 77 75 2c 09 5c 20 77 65 | 20 68 61 76 65 20 32 20 |wu,.\ we| have 2 |
|00001da0| 63 61 63 68 65 64 20 63 | 65 6c 6c 73 20 2d 20 70 |cached c|ells - p|
|00001db0| 75 73 68 20 6f 6e 65 20 | 6f 66 66 0d 5c 20 09 72 |ush one |off.\ .r|
|00001dc0| 33 09 09 72 34 09 09 09 | 6d 72 2c 0d 20 09 72 34 |3..r4...|mr,. .r4|
|00001dd0| 09 09 72 30 09 30 09 09 | 61 64 64 69 2c 09 5c 20 |..r0.0..|addi,.\ |
|00001de0| 61 6e 64 20 72 65 74 75 | 72 6e 20 7a 65 72 6f 20 |and retu|rn zero |
|00001df0| 6f 6e 20 74 6f 70 20 28 | 6d 65 61 6e 73 20 6e 6f |on top (|means no|
|00001e00| 20 65 72 72 6f 72 29 0d | 20 09 09 09 09 09 09 62 | error).| ......b|
|00001e10| 6c 72 2c 0d 20 74 68 65 | 6e 2c 0d 09 09 27 20 66 |lr,. the|n,...' f|
|00001e20| 72 61 6d 65 45 72 72 20 | 32 2b 09 62 2c 09 09 5c |rameErr |2+.b,..\|
|00001e30| 20 72 74 6e 20 73 74 6b | 20 6d 61 72 6b 65 72 20 | rtn stk| marker |
|00001e40| 6e 6f 74 20 74 68 65 72 | 65 20 2d 20 63 61 6c 6c |not ther|e - call|
|00001e50| 20 66 72 61 6d 65 45 72 | 72 0d 0d 3b 70 70 63 5f | frameEr|r..;ppc_|
|00001e60| 63 6f 64 65 0d 0d 0d 28 | 2a 09 54 48 52 4f 57 20 |code...(|*.THROW |
|00001e70| 68 61 73 20 74 77 6f 20 | 76 61 72 69 61 6e 74 73 |has two |variants|
|00001e80| 2e 20 20 54 68 72 6f 77 | 57 69 74 68 49 6e 66 6f |. Throw|WithInfo|
|00001e90| 20 69 73 20 75 73 65 64 | 20 62 79 20 6f 75 72 20 | is used| by our |
|00001ea0| 6e 6f 72 6d 61 6c 20 65 | 72 72 6f 72 0d 09 77 6f |normal e|rror..wo|
|00001eb0| 72 64 20 44 49 45 2c 20 | 61 6e 64 20 61 6c 73 6f |rd DIE, |and also|
|00001ec0| 20 62 79 20 41 42 4f 52 | 54 22 2c 20 77 68 69 63 | by ABOR|T", whic|
|00001ed0| 68 20 62 6f 74 68 20 73 | 61 76 65 20 74 68 65 20 |h both s|ave the |
|00001ee0| 65 72 72 6f 72 20 69 6e | 66 6f 20 28 69 6e 63 6c |error in|fo (incl|
|00001ef0| 75 64 69 6e 67 0d 09 61 | 20 6d 65 73 73 61 67 65 |uding..a| message|
|00001f00| 20 73 74 72 69 6e 67 29 | 20 62 65 66 6f 72 65 20 | string)| before |
|00001f10| 64 6f 69 6e 67 20 61 20 | 6e 6f 72 6d 61 6c 20 74 |doing a |normal t|
|00001f20| 68 72 6f 77 2e 20 20 54 | 68 69 73 20 76 61 72 69 |hrow. T|his vari|
|00001f30| 61 6e 74 20 73 69 67 6e | 61 6c 73 0d 09 74 68 61 |ant sign|als..tha|
|00001f40| 74 20 74 68 65 20 73 61 | 76 65 64 20 65 72 72 6f |t the sa|ved erro|
|00001f50| 72 20 69 6e 66 6f 20 69 | 73 20 76 61 6c 69 64 2e |r info i|s valid.|
|00001f60| 20 20 4f 75 72 20 64 65 | 66 61 75 6c 74 20 65 72 | Our de|fault er|
|00001f70| 72 6f 72 20 68 61 6e 64 | 6c 65 72 20 44 46 4c 54 |ror hand|ler DFLT|
|00001f80| 5f 44 49 45 2c 0d 09 77 | 68 69 63 68 20 69 73 20 |_DIE,..w|hich is |
|00001f90| 63 61 6c 6c 65 64 20 69 | 66 20 6e 6f 20 74 68 72 |called i|f no thr|
|00001fa0| 6f 77 20 68 61 6e 64 6c | 65 72 20 68 61 73 20 62 |ow handl|er has b|
|00001fb0| 65 65 6e 20 69 6e 73 74 | 61 6c 6c 65 64 2c 20 74 |een inst|alled, t|
|00001fc0| 65 73 74 73 20 74 68 69 | 73 20 66 6c 61 67 0d 09 |ests thi|s flag..|
|00001fd0| 74 6f 20 64 65 63 69 64 | 65 20 77 68 65 74 68 65 |to decid|e whethe|
|00001fe0| 72 20 74 6f 20 63 61 6c | 6c 20 2e 45 52 52 20 74 |r to cal|l .ERR t|
|00001ff0| 6f 20 64 69 73 70 6c 61 | 79 20 74 68 65 20 69 6e |o displa|y the in|
|00002000| 66 6f 2e 0d 20 0d 09 49 | 66 20 54 48 52 4f 57 20 |fo.. ..I|f THROW |
|00002010| 69 73 20 63 61 6c 6c 65 | 64 20 64 69 72 65 63 74 |is calle|d direct|
|00002020| 6c 79 20 66 72 6f 6d 20 | 63 6f 64 65 2c 20 69 74 |ly from |code, it|
|00002030| 20 66 6c 61 67 73 20 74 | 68 65 20 65 72 72 6f 72 | flags t|he error|
|00002040| 20 69 6e 66 6f 20 69 6e | 76 61 6c 69 64 2c 0d 09 | info in|valid,..|
|00002050| 77 68 69 63 68 20 70 72 | 65 76 65 6e 74 73 20 44 |which pr|events D|
|00002060| 46 4c 54 5f 44 49 45 20 | 66 72 6f 6d 20 63 61 6c |FLT_DIE |from cal|
|00002070| 6c 69 6e 67 20 2e 45 52 | 52 20 61 6e 64 20 64 69 |ling .ER|R and di|
|00002080| 73 70 6c 61 79 69 6e 67 | 20 73 70 75 72 69 6f 75 |splaying| spuriou|
|00002090| 73 20 69 6e 66 6f 2e 0d | 2a 29 0d 0d 3a 70 70 63 |s info..|*)..:ppc|
|000020a0| 5f 63 6f 64 65 20 28 54 | 48 52 4f 57 29 0d 09 72 |_code (T|HROW)..r|
|000020b0| 34 09 09 30 09 63 6d 70 | 6c 69 2c 09 09 09 5c 20 |4..0.cmp|li,...\ |
|000020c0| 69 73 20 54 48 52 4f 57 | 20 63 6f 64 65 20 6e 6f |is THROW| code no|
|000020d0| 6e 7a 65 72 6f 0d 0d 6e | 65 20 69 66 2c 09 09 09 |nzero..n|e if,...|
|000020e0| 09 09 09 09 5c 20 79 65 | 73 20 2d 20 77 65 20 64 |....\ ye|s - we d|
|000020f0| 6f 20 74 68 65 20 74 68 | 72 6f 77 3a 0d 20 09 72 |o the th|row:. .r|
|00002100| 58 09 27 20 74 68 72 6f | 77 5f 68 61 6e 64 6c 65 |X.' thro|w_handle|
|00002110| 72 20 32 2b 20 40 61 62 | 73 36 20 20 64 69 63 61 |r 2+ @ab|s6 dica|
|00002120| 64 64 72 0d 20 09 09 09 | 09 09 09 6c 77 7a 2c 09 |ddr. ...|...lwz,.|
|00002130| 5c 20 72 65 73 74 6f 72 | 65 20 70 72 65 76 69 6f |\ restor|e previo|
|00002140| 75 73 20 74 68 72 6f 77 | 5f 68 61 6e 64 6c 65 72 |us throw|_handler|
|00002150| 0d 09 72 58 09 09 30 09 | 63 6d 70 6c 69 2c 09 09 |..rX..0.|cmpli,..|
|00002160| 09 5c 20 69 73 20 74 68 | 65 72 65 20 61 20 74 68 |.\ is th|ere a th|
|00002170| 72 6f 77 20 68 61 6e 64 | 6c 65 72 3f 0d 0d 20 6e |row hand|ler?.. n|
|00002180| 65 20 69 66 2c 0d 09 72 | 30 09 09 30 09 72 58 09 |e if,..r|0..0.rX.|
|00002190| 09 6c 77 7a 2c 09 5c 20 | 63 68 65 63 6b 20 6f 75 |.lwz,.\ |check ou|
|000021a0| 72 20 73 70 65 63 69 61 | 6c 20 6d 61 72 6b 65 72 |r specia|l marker|
|000021b0| 20 69 73 20 73 74 69 6c | 6c 0d 09 72 30 09 09 24 | is stil|l..r0..$|
|000021c0| 20 37 38 39 41 09 09 63 | 6d 70 6c 69 2c 09 5c 20 | 789A..c|mpli,.\ |
|000021d0| 20 6f 6e 20 74 6f 70 20 | 6f 66 20 72 74 6e 20 73 | on top |of rtn s|
|000021e0| 74 6b 0d 20 20 65 71 20 | 69 66 2c 09 09 09 09 09 |tk. eq |if,.....|
|000021f0| 09 5c 20 79 65 70 2c 20 | 61 6c 6c 20 4f 4b 0d 20 |.\ yep, |all OK. |
|00002200| 20 09 72 52 50 09 09 72 | 58 09 09 09 6d 72 2c 09 | .rRP..r|X...mr,.|
|00002210| 09 5c 20 73 65 74 20 52 | 50 20 74 6f 20 70 6f 69 |.\ set R|P to poi|
|00002220| 6e 74 20 74 6f 20 68 61 | 6e 64 6c 65 72 20 66 72 |nt to ha|ndler fr|
|00002230| 61 6d 65 0d 20 20 09 09 | 09 09 09 09 09 09 5c 20 |ame. ..|......\ |
|00002240| 4e 6f 77 20 77 65 20 72 | 65 73 74 6f 72 65 20 65 |Now we r|estore e|
|00002250| 76 65 72 79 74 68 69 6e | 67 20 66 72 6f 6d 20 74 |verythin|g from t|
|00002260| 68 65 20 66 72 61 6d 65 | 3a 0d 20 20 09 72 53 50 |he frame|:. .rSP|
|00002270| 09 09 34 09 72 52 50 09 | 09 6c 77 7a 2c 09 5c 20 |..4.rRP.|.lwz,.\ |
|00002280| 72 53 50 20 66 72 6f 6d | 20 6f 66 66 73 20 34 0d |rSP from| offs 4.|
|00002290| 20 20 20 09 72 30 09 09 | 38 09 72 52 50 09 09 6c | .r0..|8.rRP..l|
|000022a0| 77 7a 2c 0d 20 09 72 30 | 09 27 20 74 68 72 6f 77 |wz,. .r0|.' throw|
|000022b0| 5f 68 61 6e 64 6c 65 72 | 20 32 2b 20 40 61 62 73 |_handler| 2+ @abs|
|000022c0| 36 20 20 64 69 63 61 64 | 64 72 0d 20 09 09 09 09 |6 dicad|dr. ....|
|000022d0| 09 09 73 74 77 2c 09 5c | 20 61 6e 64 20 70 72 65 |..stw,.\| and pre|
|000022e0| 76 69 6f 75 73 20 74 68 | 72 6f 77 5f 68 61 6e 64 |vious th|row_hand|
|000022f0| 6c 65 72 20 66 72 6f 6d | 20 6f 66 66 73 20 38 0d |ler from| offs 8.|
|00002300| 20 09 72 52 50 09 09 31 | 30 34 09 09 09 61 64 64 | .rRP..1|04...add|
|00002310| 69 2c 0d 20 09 27 20 66 | 72 65 73 74 6f 72 65 73 |i,. .' f|restores|
|00002320| 20 32 2b 09 09 62 6c 2c | 09 09 5c 20 72 65 73 74 | 2+..bl,|..\ rest|
|00002330| 6f 72 65 20 46 50 52 20 | 6c 6f 63 61 6c 73 0d 20 |ore FPR |locals. |
|00002340| 09 72 52 50 09 09 34 38 | 09 09 09 61 64 64 69 2c |.rRP..48|...addi,|
|00002350| 0d 20 09 27 20 72 65 73 | 74 6f 72 65 73 20 32 2b |. .' res|tores 2+|
|00002360| 09 09 62 6c 2c 09 09 5c | 20 61 6e 64 20 47 50 52 |..bl,..\| and GPR|
|00002370| 20 6c 6f 63 61 6c 73 0d | 20 09 72 52 50 09 09 31 | locals.| .rRP..1|
|00002380| 36 09 09 09 61 64 64 69 | 2c 09 5c 20 64 65 6c 65 |6...addi|,.\ dele|
|00002390| 74 65 20 72 65 73 74 20 | 6f 66 20 66 72 61 6d 65 |te rest |of frame|
|000023a0| 0d 0d 20 09 72 30 09 09 | 2d 34 09 72 52 50 09 09 |.. .r0..|-4.rRP..|
|000023b0| 6c 77 7a 2c 09 5c 20 72 | 65 73 74 6f 72 65 20 6c |lwz,.\ r|estore l|
|000023c0| 72 0d 20 09 72 30 09 09 | 09 09 09 6d 74 6c 72 2c |r. .r0..|...mtlr,|
|000023d0| 0d 20 09 72 33 09 09 2d | 31 36 20 72 52 50 09 09 |. .r3..-|16 rRP..|
|000023e0| 6c 77 7a 2c 09 5c 20 61 | 6e 64 20 63 61 63 68 65 |lwz,.\ a|nd cache|
|000023f0| 64 20 73 74 61 63 6b 20 | 63 65 6c 6c 20 28 72 33 |d stack |cell (r3|
|00002400| 29 0d 20 09 09 09 09 09 | 09 62 6c 72 2c 09 5c 20 |). .....|.blr,.\ |
|00002410| 61 6e 64 20 72 65 74 75 | 72 6e 20 74 6f 20 43 41 |and retu|rn to CA|
|00002420| 54 43 48 20 63 61 6c 6c | 65 72 0d 0d 20 20 74 68 |TCH call|er.. th|
|00002430| 65 6e 2c 0d 09 09 27 20 | 66 72 61 6d 65 45 72 72 |en,...' |frameErr|
|00002440| 20 32 2b 09 62 2c 09 09 | 5c 20 72 74 6e 20 73 74 | 2+.b,..|\ rtn st|
|00002450| 6b 20 6d 61 72 6b 65 72 | 20 6e 6f 74 20 74 68 65 |k marker| not the|
|00002460| 72 65 20 2d 20 63 61 6c | 6c 20 66 72 61 6d 65 45 |re - cal|l frameE|
|00002470| 72 72 0d 20 74 68 65 6e | 2c 0d 20 09 09 27 20 6e |rr. then|,. ..' n|
|00002480| 6f 5f 74 68 72 6f 77 5f | 68 61 6e 64 6c 65 72 20 |o_throw_|handler |
|00002490| 32 2b 09 62 2c 09 09 5c | 20 6e 6f 20 74 68 72 6f |2+.b,..\| no thro|
|000024a0| 77 20 68 61 6e 64 6c 65 | 72 3a 20 74 61 6b 65 20 |w handle|r: take |
|000024b0| 64 65 66 61 75 6c 74 20 | 61 63 74 69 6f 6e 0d 74 |default |action.t|
|000024c0| 68 65 6e 2c 0d 0d 09 72 | 34 09 09 72 33 09 09 09 |hen,...r|4..r3...|
|000024d0| 6d 72 2c 09 09 5c 20 74 | 68 72 6f 77 20 63 6f 64 |mr,..\ t|hrow cod|
|000024e0| 65 20 7a 65 72 6f 20 2d | 20 6e 6f 20 65 72 72 6f |e zero -| no erro|
|000024f0| 72 20 2d 20 6a 75 73 74 | 20 64 72 6f 70 0d 09 72 |r - just| drop..r|
|00002500| 33 09 09 30 09 72 53 50 | 09 09 6c 77 7a 2c 09 5c |3..0.rSP|..lwz,.\|
|00002510| 20 20 74 68 65 20 7a 65 | 72 6f 20 61 6e 64 20 72 | the ze|ro and r|
|00002520| 65 74 75 72 6e 2e 0d 09 | 72 53 50 09 09 72 53 50 |eturn...|rSP..rSP|
|00002530| 09 34 09 09 61 64 64 69 | 2c 0d 09 09 09 09 09 09 |.4..addi|,.......|
|00002540| 62 6c 72 2c 0d 3b 70 70 | 63 5f 63 6f 64 65 0d 0d |blr,.;pp|c_code..|
|00002550| 0d 3a 66 20 54 48 52 4f | 57 0d 09 66 61 6c 73 65 |.:f THRO|W..false|
|00002560| 20 2d 3e 20 65 72 72 5f | 69 6e 66 6f 5f 76 61 6c | -> err_|info_val|
|00002570| 69 64 3f 20 20 28 74 68 | 72 6f 77 29 0d 3b 66 0d |id? (th|row).;f.|
|00002580| 0d 3a 20 54 48 52 4f 57 | 5f 57 49 54 48 5f 49 4e |.: THROW|_WITH_IN|
|00002590| 46 4f 0d 09 74 72 75 65 | 20 2d 3e 20 65 72 72 5f |FO..true| -> err_|
|000025a0| 69 6e 66 6f 5f 76 61 6c | 69 64 3f 20 20 28 74 68 |info_val|id? (th|
|000025b0| 72 6f 77 29 0d 3b 0d 0d | 0d 3a 20 41 42 4f 52 54 |row).;..|.: ABORT|
|000025c0| 0d 09 30 20 30 20 73 61 | 76 65 5f 65 72 72 20 20 |..0 0 sa|ve_err |
|000025d0| 2d 31 20 74 68 72 6f 77 | 20 20 3b 0d 0d 0d 28 2a |-1 throw| ;...(*|
|000025e0| 09 41 42 4f 52 54 22 20 | 69 73 20 69 6d 6d 65 64 |.ABORT" |is immed|
|000025f0| 69 61 74 65 2c 20 73 6f | 20 77 65 27 76 65 20 61 |iate, so| we've a|
|00002600| 6c 72 65 61 64 79 20 64 | 65 66 69 6e 65 64 20 69 |lready d|efined i|
|00002610| 74 20 62 65 66 6f 72 65 | 20 43 52 4f 53 53 0d 09 |t before| CROSS..|
|00002620| 69 6e 20 71 43 6f 6e 64 | 2e 20 20 49 74 20 67 65 |in qCond|. It ge|
|00002630| 74 73 20 74 68 65 20 73 | 74 72 69 6e 67 20 70 61 |ts the s|tring pa|
|00002640| 72 61 6d 65 74 65 72 2c | 20 74 68 65 6e 20 45 56 |rameter,| then EV|
|00002650| 41 4c 55 41 54 45 73 20 | 64 6f 5f 61 62 71 0d 09 |ALUATEs |do_abq..|
|00002660| 77 68 69 63 68 20 77 65 | 20 64 65 66 69 6e 65 20 |which we| define |
|00002670| 68 65 72 65 2e 20 20 57 | 68 61 74 20 77 65 20 65 |here. W|hat we e|
|00002680| 6e 64 20 75 70 20 64 6f | 69 6e 67 20 69 73 20 69 |nd up do|ing is i|
|00002690| 6e 20 65 66 66 65 63 74 | 20 74 68 69 73 3a 0d 0d |n effect| this:..|
|000026a0| 09 09 3a 20 41 42 4f 52 | 54 22 0d 09 09 09 70 6f |..: ABOR|T"....po|
|000026b0| 73 74 70 6f 6e 65 20 22 | 0d 09 09 09 72 6f 74 20 |stpone "|....rot |
|000026c0| 4e 49 46 20 20 32 64 72 | 6f 70 20 20 45 58 49 54 |NIF 2dr|op EXIT|
|000026d0| 20 20 54 48 45 4e 0d 09 | 09 09 73 61 76 65 5f 65 | THEN..|..save_e|
|000026e0| 72 72 20 20 2d 32 20 74 | 68 72 6f 77 5f 77 69 74 |rr -2 t|hrow_wit|
|000026f0| 68 5f 69 6e 66 6f 20 20 | 3b 09 09 69 6d 6d 65 64 |h_info |;..immed|
|00002700| 69 61 74 65 0d 2a 29 0d | 0d 3a 20 64 6f 5f 61 62 |iate.*).|.: do_ab|
|00002710| 71 0d 09 72 6f 74 20 4e | 49 46 20 20 32 64 72 6f |q..rot N|IF 2dro|
|00002720| 70 20 20 45 58 49 54 20 | 20 54 48 45 4e 0d 09 73 |p EXIT | THEN..s|
|00002730| 61 76 65 5f 65 72 72 20 | 2d 32 20 74 68 72 6f 77 |ave_err |-2 throw|
|00002740| 5f 77 69 74 68 5f 69 6e | 66 6f 20 20 3b 0d 0d 30 |_with_in|fo ;..0|
|00002750| 09 76 61 6c 75 65 09 73 | 76 45 72 72 4e 75 6d 0d |.value.s|vErrNum.|
|00002760| 0d 3a 66 20 44 49 45 0d | 09 64 75 70 20 2d 3e 20 |.:f DIE.|.dup -> |
|00002770| 73 76 45 72 72 4e 75 6d | 20 20 2d 31 20 73 61 76 |svErrNum| -1 sav|
|00002780| 65 5f 65 72 72 09 5c 20 | 2d 31 20 69 6e 64 69 63 |e_err.\ |-1 indic|
|00002790| 61 74 65 73 20 74 6f 20 | 73 61 76 65 5f 65 72 72 |ates to |save_err|
|000027a0| 20 74 68 61 74 0d 09 09 | 09 09 09 09 09 09 09 5c | that...|.......\|
|000027b0| 20 20 74 68 69 73 20 69 | 73 20 61 6e 20 65 72 72 | this i|s an err|
|000027c0| 23 0d 09 73 76 45 72 72 | 4e 75 6d 20 20 74 68 72 |#..svErr|Num thr|
|000027d0| 6f 77 5f 77 69 74 68 5f | 69 6e 66 6f 0d 3b 66 0d |ow_with_|info.;f.|
|000027e0| 0d 0d 28 2a 20 2a 2a 2a | 2a 0d 0d 5c 20 54 48 52 |..(* ***|*..\ THR|
|000027f0| 4f 57 20 74 65 73 74 3a | 0d 0d 3a 20 63 6f 75 6c |OW test:|..: coul|
|00002800| 64 2d 66 61 69 6c 20 20 | 6b 65 79 20 64 75 70 20 |d-fail |key dup |
|00002810| 20 26 20 41 20 3d 20 69 | 66 20 20 24 20 31 32 33 | & A = i|f $ 123|
|00002820| 34 20 74 68 72 6f 77 20 | 20 74 68 65 6e 20 20 3b |4 throw | then ;|
|00002830| 0d 0d 3a 20 64 6f 69 74 | 09 63 6f 75 6c 64 2d 66 |..: doit|.could-f|
|00002840| 61 69 6c 20 20 6e 69 70 | 20 6e 69 70 20 6e 69 70 |ail nip| nip nip|
|00002850| 20 20 3b 0d 0d 3a 20 74 | 68 72 6f 77 74 65 73 74 | ;..: t|hrowtest|
|00002860| 0d 64 62 67 72 0d 09 31 | 20 32 20 33 20 5b 27 5d |.dbgr..1| 2 3 [']|
|00002870| 20 64 6f 69 74 20 63 61 | 74 63 68 0d 5c 20 69 66 | doit ca|tch.\ if|
|00002880| 20 74 68 65 72 65 27 73 | 20 6e 6f 20 74 68 72 6f | there's| no thro|
|00002890| 77 2c 20 74 68 65 20 31 | 20 32 20 33 20 77 69 6c |w, the 1| 2 3 wil|
|000028a0| 6c 20 62 65 20 64 72 6f | 70 70 65 64 2c 20 61 6e |l be dro|pped, an|
|000028b0| 64 20 77 65 27 6c 6c 20 | 67 65 74 0d 5c 20 20 74 |d we'll |get.\ t|
|000028c0| 68 65 20 74 79 70 65 64 | 20 6b 65 79 2e 20 20 49 |he typed| key. I|
|000028d0| 66 20 74 68 72 6f 77 20 | 69 73 20 65 78 65 63 75 |f throw |is execu|
|000028e0| 74 65 64 2c 20 77 65 20 | 73 68 6f 75 6c 64 20 67 |ted, we |should g|
|000028f0| 65 74 20 74 68 65 20 31 | 20 32 20 33 0d 5c 20 20 |et the 1| 2 3.\ |
|00002900| 61 6e 64 20 74 68 65 20 | 65 72 72 6f 72 20 6e 75 |and the |error nu|
|00002910| 6d 62 65 72 20 24 20 31 | 32 33 34 20 6f 6e 20 74 |mber $ 1|234 on t|
|00002920| 68 65 20 73 74 61 63 6b | 2e 0d 0d 64 62 67 72 20 |he stack|...dbgr |
|00002930| 64 75 70 0d 09 49 46 09 | 09 2e 22 20 45 72 72 6f |dup..IF.|.." Erro|
|00002940| 72 20 77 61 73 20 74 68 | 72 6f 77 6e 22 20 63 72 |r was th|rown" cr|
|00002950| 20 2e 73 0d 09 45 4c 53 | 45 09 64 72 6f 70 20 20 | .s..ELS|E.drop |
|00002960| 2e 22 20 54 68 65 20 63 | 68 61 72 20 77 61 73 20 |." The c|har was |
|00002970| 22 20 65 6d 69 74 20 63 | 72 0d 09 54 48 45 4e 20 |" emit c|r..THEN |
|00002980| 20 3b 0d 0d 2a 2a 2a 2a | 20 2a 29 0d 0d 0d 3a 20 | ;..****| *)...: |
|00002990| 3f 43 4f 4d 50 0d 09 73 | 74 61 74 65 20 20 3f 45 |?COMP..s|tate ?E|
|000029a0| 58 49 54 0d 09 2d 31 34 | 20 64 69 65 20 20 3b 0d |XIT..-14| die ;.|
|000029b0| 0d 0d 3a 20 3f 53 54 41 | 43 4b 0d 09 64 65 70 74 |..: ?STA|CK..dept|
|000029c0| 68 20 64 75 70 20 30 3c | 0d 09 49 46 20 20 2d 34 |h dup 0<|..IF -4|
|000029d0| 20 64 69 65 20 20 54 48 | 45 4e 09 09 09 09 09 5c | die TH|EN.....\|
|000029e0| 20 22 73 74 61 63 6b 20 | 75 6e 64 65 72 66 6c 6f | "stack |underflo|
|000029f0| 77 22 0d 09 73 74 61 63 | 6b 5f 73 69 7a 65 20 3e |w"..stac|k_size >|
|00002a00| 3d 20 49 46 20 20 2d 35 | 20 64 69 65 20 20 54 48 |= IF -5| die TH|
|00002a10| 45 4e 09 09 5c 20 22 73 | 74 61 63 6b 20 6f 76 65 |EN..\ "s|tack ove|
|00002a20| 72 66 6c 6f 77 22 0d 09 | 66 64 65 70 74 68 20 64 |rflow"..|fdepth d|
|00002a30| 75 70 20 30 3c 0d 09 49 | 46 20 20 2d 34 35 20 64 |up 0<..I|F -45 d|
|00002a40| 69 65 20 20 54 48 45 4e | 09 09 09 09 09 5c 20 22 |ie THEN|.....\ "|
|00002a50| 66 6c 6f 61 74 69 6e 67 | 2d 70 6f 69 6e 74 20 73 |floating|-point s|
|00002a60| 74 61 63 6b 20 75 6e 64 | 65 72 66 6c 6f 77 22 0d |tack und|erflow".|
|00002a70| 09 66 73 74 61 63 6b 5f | 73 69 7a 65 20 3e 3d 20 |.fstack_|size >= |
|00002a80| 49 46 20 20 2d 34 34 20 | 64 69 65 20 20 54 48 45 |IF -44 |die THE|
|00002a90| 4e 09 5c 20 22 66 6c 6f | 61 74 69 6e 67 2d 70 6f |N.\ "flo|ating-po|
|00002aa0| 69 6e 74 20 73 74 61 63 | 6b 20 6f 76 65 72 66 6c |int stac|k overfl|
|00002ab0| 6f 77 22 0d 3b 0d 0d 3a | 20 3f 45 58 45 43 0d 09 |ow".;..:| ?EXEC..|
|00002ac0| 73 74 61 74 65 20 20 30 | 45 58 49 54 0d 09 37 37 |state 0|EXIT..77|
|00002ad0| 20 64 69 65 20 20 3b 09 | 09 5c 20 22 45 78 65 63 | die ;.|.\ "Exec|
|00002ae0| 75 74 69 6f 6e 20 73 74 | 61 74 65 20 6f 6e 6c 79 |ution st|ate only|
|00002af0| 22 0d 0d 3a 20 3f 50 41 | 49 52 53 0d 09 3d 20 3f |"..: ?PA|IRS..= ?|
|00002b00| 45 58 49 54 0d 09 2d 32 | 32 20 64 69 65 20 20 3b |EXIT..-2|2 die ;|
|00002b10| 09 09 5c 20 22 43 6f 6e | 74 72 6f 6c 20 73 74 72 |..\ "Con|trol str|
|00002b20| 75 63 74 75 72 65 20 6d | 69 73 6d 61 74 63 68 22 |ucture m|ismatch"|
|00002b30| 0d 0d 0d 3a 20 3f 44 45 | 46 4e 0d 09 3d 20 3f 45 |...: ?DE|FN..= ?E|
|00002b40| 58 49 54 0d 09 37 38 20 | 64 69 65 20 20 3b 09 09 |XIT..78 |die ;..|
|00002b50| 5c 20 22 55 6e 62 61 6c | 61 6e 63 65 64 20 64 65 |\ "Unbal|anced de|
|00002b60| 66 69 6e 69 74 69 6f 6e | 22 0d 0d 28 2a 0d 09 28 |finition|"..(*..(|
|00002b70| 65 78 63 65 70 29 20 69 | 73 20 62 72 61 6e 63 68 |excep) i|s branch|
|00002b80| 65 64 20 74 6f 20 66 72 | 6f 6d 20 6f 75 72 20 65 |ed to fr|om our e|
|00002b90| 78 63 65 70 74 69 6f 6e | 20 68 61 6e 64 6c 65 72 |xception| handler|
|00002ba0| 20 69 6e 20 7a 4f 62 6a | 49 6e 69 74 2e 0d 09 57 | in zObj|Init...W|
|00002bb0| 65 20 64 6f 6e 27 74 20 | 72 65 61 6c 6c 79 20 6b |e don't |really k|
|00002bc0| 6e 6f 77 20 77 68 69 63 | 68 20 72 65 67 73 20 68 |now whic|h regs h|
|00002bd0| 65 6c 64 20 74 68 65 20 | 74 6f 70 20 73 74 61 63 |eld the |top stac|
|00002be0| 6b 20 63 65 6c 6c 73 20 | 77 68 65 6e 20 74 68 65 |k cells |when the|
|00002bf0| 0d 09 65 78 63 65 70 74 | 69 6f 6e 20 6f 63 63 75 |..except|ion occu|
|00002c00| 72 72 65 64 2c 20 73 6f | 20 77 65 20 6a 75 73 74 |rred, so| we just|
|00002c10| 20 74 61 6b 65 20 61 73 | 20 73 74 61 62 20 74 68 | take as| stab th|
|00002c20| 61 74 20 69 74 20 77 61 | 73 20 72 33 20 61 6e 64 |at it wa|s r3 and|
|00002c30| 20 72 34 2e 0d 09 54 68 | 65 20 65 78 63 65 70 74 | r4...Th|e except|
|00002c40| 69 6f 6e 20 68 61 6e 64 | 6c 65 72 20 6c 65 61 76 |ion hand|ler leav|
|00002c50| 65 73 20 74 68 65 20 65 | 78 63 65 70 20 63 6f 64 |es the e|xcep cod|
|00002c60| 65 20 69 6e 20 72 35 2e | 20 20 53 6f 20 77 65 20 |e in r5.| So we |
|00002c70| 73 65 74 20 75 70 0d 09 | 28 65 78 63 65 70 29 20 |set up..|(excep) |
|00002c80| 77 69 74 68 20 33 20 6e | 61 6d 65 64 20 70 61 72 |with 3 n|amed par|
|00002c90| 6d 73 2c 20 77 68 69 63 | 68 20 77 69 6c 6c 20 62 |ms, whic|h will b|
|00002ca0| 65 20 72 33 2c 20 72 34 | 20 61 6e 64 20 72 35 2e |e r3, r4| and r5.|
|00002cb0| 0d 09 0d 09 48 65 72 65 | 27 73 20 41 70 70 6c 65 |....Here|'s Apple|
|00002cc0| 27 73 20 64 65 66 6e 20 | 6f 66 20 74 68 65 20 65 |'s defn |of the e|
|00002cd0| 78 63 65 70 74 69 6f 6e | 20 63 6f 64 65 73 3a 0d |xception| codes:.|
|00002ce0| 0d 09 6b 55 6e 6b 6e 6f | 77 6e 45 78 63 65 70 74 |..kUnkno|wnExcept|
|00002cf0| 69 6f 6e 09 09 09 09 3d | 20 30 0d 09 6b 49 6c 6c |ion....=| 0..kIll|
|00002d00| 65 67 61 6c 49 6e 73 74 | 72 75 63 74 69 6f 6e 45 |egalInst|ructionE|
|00002d10| 78 63 65 70 74 69 6f 6e | 20 09 3d 20 31 0d 09 6b |xception| .= 1..k|
|00002d20| 54 72 61 70 45 78 63 65 | 70 74 69 6f 6e 09 09 09 |TrapExce|ption...|
|00002d30| 09 09 3d 20 32 0d 09 6b | 41 63 63 65 73 73 45 78 |..= 2..k|AccessEx|
|00002d40| 63 65 70 74 69 6f 6e 09 | 09 09 09 3d 20 33 0d 09 |ception.|...= 3..|
|00002d50| 6b 55 6e 6d 61 70 70 65 | 64 4d 65 6d 6f 72 79 45 |kUnmappe|dMemoryE|
|00002d60| 78 63 65 70 74 69 6f 6e | 09 09 3d 20 34 0d 09 6b |xception|..= 4..k|
|00002d70| 45 78 63 6c 75 64 65 64 | 4d 65 6d 6f 72 79 45 78 |Excluded|MemoryEx|
|00002d80| 63 65 70 74 69 6f 6e 09 | 09 3d 20 35 0d 09 6b 52 |ception.|.= 5..kR|
|00002d90| 65 61 64 4f 6e 6c 79 4d | 65 6d 6f 72 79 45 78 63 |eadOnlyM|emoryExc|
|00002da0| 65 70 74 69 6f 6e 09 09 | 3d 20 36 0d 09 6b 55 6e |eption..|= 6..kUn|
|00002db0| 72 65 73 6f 6c 76 61 62 | 6c 65 50 61 67 65 46 61 |resolvab|lePageFa|
|00002dc0| 75 6c 74 45 78 63 65 70 | 74 69 6f 6e 20 3d 20 37 |ultExcep|tion = 7|
|00002dd0| 0d 09 6b 50 72 69 76 69 | 6c 65 67 65 56 69 6f 6c |..kPrivi|legeViol|
|00002de0| 61 74 69 6f 6e 45 78 63 | 65 70 74 69 6f 6e 20 09 |ationExc|eption .|
|00002df0| 3d 20 38 0d 09 6b 54 72 | 61 63 65 45 78 63 65 70 |= 8..kTr|aceExcep|
|00002e00| 74 69 6f 6e 09 09 09 09 | 09 3d 20 39 0d 09 6b 49 |tion....|.= 9..kI|
|00002e10| 6e 73 74 72 75 63 74 69 | 6f 6e 42 72 65 61 6b 70 |nstructi|onBreakp|
|00002e20| 6f 69 6e 74 45 78 63 65 | 70 74 69 6f 6e 20 3d 20 |ointExce|ption = |
|00002e30| 31 30 0d 09 6b 44 61 74 | 61 42 72 65 61 6b 70 6f |10..kDat|aBreakpo|
|00002e40| 69 6e 74 45 78 63 65 70 | 74 69 6f 6e 09 09 3d 20 |intExcep|tion..= |
|00002e50| 31 31 0d 09 6b 49 6e 74 | 65 67 65 72 45 78 63 65 |11..kInt|egerExce|
|00002e60| 70 74 69 6f 6e 09 09 09 | 09 3d 20 31 32 0d 09 6b |ption...|.= 12..k|
|00002e70| 46 6c 6f 61 74 69 6e 67 | 50 6f 69 6e 74 45 78 63 |Floating|PointExc|
|00002e80| 65 70 74 69 6f 6e 09 09 | 09 3d 20 31 33 0d 09 6b |eption..|.= 13..k|
|00002e90| 53 74 61 63 6b 4f 76 65 | 72 66 6c 6f 77 45 78 63 |StackOve|rflowExc|
|00002ea0| 65 70 74 69 6f 6e 09 09 | 09 3d 20 31 34 0d 09 6b |eption..|.= 14..k|
|00002eb0| 54 65 72 6d 69 6e 61 74 | 69 6f 6e 45 78 63 65 70 |Terminat|ionExcep|
|00002ec0| 74 69 6f 6e 09 09 09 3d | 20 31 35 0d 2a 29 0d 0d |tion...=| 15.*)..|
|00002ed0| 3a 20 28 65 78 63 65 70 | 29 20 20 7b 20 78 20 79 |: (excep|) { x y|
|00002ee0| 20 65 78 23 20 2d 2d 20 | 20 7d 0d 09 78 20 79 0d | ex# -- | }..x y.|
|00002ef0| 09 65 78 23 20 32 31 30 | 20 2b 20 20 64 69 65 09 |.ex# 210| + die.|
|00002f00| 09 5c 20 77 65 20 6a 75 | 73 74 20 61 73 73 69 67 |.\ we ju|st assig|
|00002f10| 6e 20 61 6c 6c 20 74 68 | 65 20 6d 65 73 73 61 67 |n all th|e messag|
|00002f20| 65 20 6e 75 6d 62 65 72 | 73 20 61 70 70 72 6f 70 |e number|s approp|
|00002f30| 72 69 61 74 65 6c 79 0d | 09 09 09 09 09 09 5c 20 |riately.|......\ |
|00002f40| 20 73 6f 20 77 65 20 64 | 6f 6e 27 74 20 68 61 76 | so we d|on't hav|
|00002f50| 65 20 74 6f 20 64 6f 20 | 61 6e 79 20 6f 74 68 65 |e to do |any othe|
|00002f60| 72 20 74 65 73 74 69 6e | 67 20 6f 6e 20 74 68 65 |r testin|g on the|
|00002f70| 0d 09 09 09 09 09 09 5c | 20 20 6e 75 6d 62 65 72 |.......\| number|
|00002f80| 2e 0d 3b 0d 0d 0d 0d 5c | 09 3d 3d 3d 3d 3d 3d 3d |..;....\|.=======|
|00002f90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 20 20 41 |========|===== A|
|00002fa0| 44 44 52 45 53 53 49 4e | 47 20 20 3d 3d 3d 3d 3d |DDRESSIN|G =====|
|00002fb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002fc0| 0d 0d 0d 5c 20 31 36 62 | 69 74 73 3f 20 28 20 6e |...\ 16b|its? ( n|
|00002fd0| 20 73 69 67 6e 65 64 3f | 20 2d 2d 20 6e 20 62 20 | signed?| -- n b |
|00002fe0| 29 0d 5c 20 20 72 65 74 | 75 72 6e 73 20 74 72 75 |).\ ret|urns tru|
|00002ff0| 65 20 69 66 20 6e 20 77 | 69 6c 6c 20 66 69 74 20 |e if n w|ill fit |
|00003000| 69 6e 20 31 36 20 62 69 | 74 73 20 28 73 69 67 6e |in 16 bi|ts (sign|
|00003010| 65 64 20 6f 72 20 75 6e | 73 69 67 6e 65 64 20 61 |ed or un|signed a|
|00003020| 73 20 72 65 71 75 65 73 | 74 65 64 29 2e 0d 0d 3a |s reques|ted)...:|
|00003030| 20 31 36 42 49 54 53 3f | 09 5c 20 28 20 6e 20 73 | 16BITS?|.\ ( n s|
|00003040| 69 67 6e 65 64 3f 20 2d | 2d 20 6e 20 62 20 29 0d |igned? -|- n b ).|
|00003050| 09 49 46 09 2d 33 32 37 | 36 38 20 33 32 37 36 37 |.IF.-327|68 32767|
|00003060| 20 20 77 69 74 68 69 6e | 3f 0d 09 45 4c 53 45 0d | within|?..ELSE.|
|00003070| 09 09 64 75 70 20 31 36 | 20 3e 3e 20 30 3d 0d 09 |..dup 16| >> 0=..|
|00003080| 54 48 45 4e 0d 3b 0d 0d | 5c 20 73 65 67 23 3e 67 |THEN.;..|\ seg#>g|
|00003090| 70 72 23 20 66 69 6e 64 | 73 20 69 66 20 74 68 65 |pr# find|s if the|
|000030a0| 20 70 61 73 73 65 64 2d | 69 6e 20 73 65 67 23 20 | passed-|in seg# |
|000030b0| 63 6f 72 72 65 73 70 6f | 6e 64 73 20 74 6f 20 61 |correspo|nds to a|
|000030c0| 20 63 75 72 72 65 6e 74 | 6c 79 0d 5c 20 20 73 65 | current|ly.\ se|
|000030d0| 74 20 75 70 20 62 61 73 | 65 20 72 65 67 69 73 74 |t up bas|e regist|
|000030e0| 65 72 2e 20 20 49 66 20 | 73 6f 2c 20 69 74 20 72 |er. If |so, it r|
|000030f0| 65 74 75 72 6e 73 20 74 | 68 65 20 72 65 67 23 2e |eturns t|he reg#.|
|00003100| 20 20 49 66 20 6e 6f 74 | 2c 20 69 74 0d 5c 20 20 | If not|, it.\ |
|00003110| 72 65 74 75 72 6e 73 20 | 7a 65 72 6f 2e 0d 0d 3a |returns |zero...:|
|00003120| 20 73 65 67 23 3e 67 70 | 72 23 09 09 5c 20 28 20 | seg#>gp|r#..\ ( |
|00003130| 73 65 67 23 20 2d 2d 20 | 67 70 72 23 20 29 0d 0d |seg# -- |gpr# )..|
|00003140| 09 43 41 53 45 5b 20 20 | 38 09 5d 3d 3e 09 09 6d |.CASE[ |8.]=>..m|
|00003150| 61 69 6e 43 6f 64 65 5f | 72 65 67 20 20 45 58 49 |ainCode_|reg EXI|
|00003160| 54 0d 09 09 5b 20 20 39 | 09 5d 3d 3e 09 09 6d 61 |T...[ 9|.]=>..ma|
|00003170| 69 6e 44 61 74 61 5f 72 | 65 67 20 20 45 58 49 54 |inData_r|eg EXIT|
|00003180| 0d 09 44 45 46 41 55 4c | 54 3d 3e 0d 09 5d 43 41 |..DEFAUL|T=>..]CA|
|00003190| 53 45 0d 0d 20 20 28 20 | 73 65 67 23 20 29 0d 20 |SE.. ( |seg# ). |
|000031a0| 20 5c 20 20 68 65 72 65 | 20 77 65 20 64 6f 6e 27 | \ here| we don'|
|000031b0| 74 20 75 73 65 20 63 61 | 73 65 5b 20 73 69 6e 63 |t use ca|se[ sinc|
|000031c0| 65 20 74 68 65 20 74 65 | 73 74 20 76 61 6c 75 65 |e the te|st value|
|000031d0| 73 20 61 72 65 6e 27 74 | 20 63 6f 6e 73 74 61 6e |s aren't| constan|
|000031e0| 74 2e 0d 0d 5c 20 64 75 | 70 20 24 20 31 31 20 3d |t...\ du|p $ 11 =|
|000031f0| 20 69 66 20 64 62 67 72 | 20 74 68 65 6e 0d 20 20 | if dbgr| then. |
|00003200| 09 64 75 70 20 20 6d 6f | 64 5f 73 65 67 23 09 09 |.dup mo|d_seg#..|
|00003210| 3d 20 49 46 20 20 64 72 | 6f 70 20 20 6d 6f 64 43 |= IF dr|op modC|
|00003220| 6f 64 65 5f 72 65 67 20 | 20 45 58 49 54 20 20 54 |ode_reg | EXIT T|
|00003230| 48 45 4e 0d 20 20 09 64 | 75 70 20 20 6d 6f 64 5f |HEN. .d|up mod_|
|00003240| 73 65 67 23 20 31 2b 09 | 3d 20 49 46 20 20 64 72 |seg# 1+.|= IF dr|
|00003250| 6f 70 20 20 6d 6f 64 44 | 61 74 61 5f 72 65 67 20 |op modD|ata_reg |
|00003260| 20 45 58 49 54 20 20 54 | 48 45 4e 0d 20 20 09 64 | EXIT T|HEN. .d|
|00003270| 75 70 20 20 63 6f 6d 70 | 5f 73 65 67 23 09 09 3d |up comp|_seg#..=|
|00003280| 20 49 46 20 20 64 72 6f | 70 09 6d 6f 64 43 6f 64 | IF dro|p.modCod|
|00003290| 65 5f 72 65 67 20 20 45 | 58 49 54 20 20 54 48 45 |e_reg E|XIT THE|
|000032a0| 4e 0d 20 20 09 09 20 63 | 6f 6d 70 5f 73 65 67 23 |N. .. c|omp_seg#|
|000032b0| 20 31 2b 09 3d 20 49 46 | 09 09 6d 6f 64 44 61 74 | 1+.= IF|..modDat|
|000032c0| 61 5f 72 65 67 20 20 45 | 58 49 54 20 20 54 48 45 |a_reg E|XIT THE|
|000032d0| 4e 0d 0d 20 20 09 30 09 | 09 09 5c 20 66 61 69 6c |N.. .0.|..\ fail|
|000032e0| 65 64 20 2d 20 20 72 65 | 74 75 72 6e 20 7a 65 72 |ed - re|turn zer|
|000032f0| 6f 0d 3b 0d 0d 0d 5c 20 | 42 26 44 20 74 61 6b 65 |o.;...\ |B&D take|
|00003300| 73 20 74 68 65 20 70 61 | 73 73 65 64 2d 69 6e 20 |s the pa|ssed-in |
|00003310| 61 64 64 72 65 73 73 20 | 61 6e 64 20 63 6f 6e 76 |address |and conv|
|00003320| 65 72 74 73 20 69 74 20 | 74 6f 20 67 70 72 23 20 |erts it |to gpr# |
|00003330| 61 6e 64 20 64 69 73 70 | 6c 61 63 65 6d 65 6e 74 |and disp|lacement|
|00003340| 2e 0d 5c 20 57 65 20 61 | 6c 73 6f 20 73 74 6f 72 |..\ We a|lso stor|
|00003350| 65 20 74 68 65 20 61 70 | 70 72 6f 70 72 69 61 74 |e the ap|propriat|
|00003360| 65 20 73 65 67 6d 65 6e | 74 20 23 20 69 6e 20 73 |e segmen|t # in s|
|00003370| 65 67 23 5f 74 6f 5f 75 | 73 65 2c 20 69 6e 20 63 |eg#_to_u|se, in c|
|00003380| 61 73 65 20 77 65 27 72 | 65 0d 5c 20 20 67 65 6e |ase we'r|e.\ gen|
|00003390| 65 72 61 74 69 6e 67 20 | 61 20 72 65 6c 6f 63 61 |erating |a reloca|
|000033a0| 74 61 62 6c 65 20 61 64 | 64 72 2e 0d 0d 30 09 76 |table ad|dr...0.v|
|000033b0| 61 6c 75 65 09 73 65 67 | 23 5f 74 6f 5f 75 73 65 |alue.seg|#_to_use|
|000033c0| 0d 0d 0d 3a 20 73 26 64 | 3e 62 26 64 20 20 7b 20 |...: s&d|>b&d { |
|000033d0| 73 65 67 23 20 64 69 73 | 70 6c 20 5c 20 64 69 73 |seg# dis|pl \ dis|
|000033e0| 70 6c 27 20 67 70 72 23 | 20 2d 2d 20 67 70 72 23 |pl' gpr#| -- gpr#|
|000033f0| 20 64 69 73 70 6c 27 20 | 7d 0d 0d 09 30 20 2d 3e | displ' |}...0 ->|
|00003400| 20 73 65 67 23 5f 74 6f | 5f 75 73 65 0d 09 73 65 | seg#_to|_use..se|
|00003410| 67 23 20 73 65 67 23 3e | 67 70 72 23 20 20 2d 3e |g# seg#>|gpr# ->|
|00003420| 20 67 70 72 23 09 09 09 | 5c 20 77 69 6c 6c 20 62 | gpr#...|\ will b|
|00003430| 65 20 7a 65 72 6f 20 69 | 66 20 77 65 20 64 69 64 |e zero i|f we did|
|00003440| 6e 27 74 20 67 65 74 20 | 61 20 72 65 67 0d 0d 09 |n't get |a reg...|
|00003450| 67 70 72 23 20 6d 61 69 | 6e 43 6f 64 65 5f 72 65 |gpr# mai|nCode_re|
|00003460| 67 20 3d 0d 09 49 46 0d | 09 09 64 69 73 70 6c 20 |g =..IF.|..displ |
|00003470| 63 6f 64 65 5f 73 74 61 | 72 74 20 2b 20 6e 75 63 |code_sta|rt + nuc|
|00003480| 5f 63 6f 64 65 5f 73 74 | 61 72 74 20 2d 20 20 68 |_code_st|art - h|
|00003490| 61 6c 66 5f 64 69 73 70 | 6c 5f 72 61 6e 67 65 20 |alf_disp|l_range |
|000034a0| 2d 20 20 2d 3e 20 64 69 | 73 70 6c 27 0d 09 0d 09 |- -> di|spl'....|
|000034b0| 09 64 69 73 70 6c 27 20 | 74 72 75 65 20 31 36 62 |.displ' |true 16b|
|000034c0| 69 74 73 3f 20 6e 69 70 | 0d 09 09 4e 49 46 09 09 |its? nip|...NIF..|
|000034d0| 09 09 5c 20 64 69 73 70 | 6c 27 20 64 6f 65 73 6e |..\ disp|l' doesn|
|000034e0| 27 74 20 66 69 74 20 69 | 6e 20 31 36 20 62 69 74 |'t fit i|n 16 bit|
|000034f0| 73 2c 20 62 75 74 20 77 | 65 20 6d 69 67 68 74 20 |s, but w|e might |
|00003500| 68 61 76 65 0d 09 09 09 | 09 09 09 5c 20 20 61 20 |have....|...\ a |
|00003510| 63 6f 6e 73 74 20 64 61 | 74 61 20 70 6f 69 6e 74 |const da|ta point|
|00003520| 65 72 20 77 68 69 63 68 | 20 77 65 20 63 61 6e 20 |er which| we can |
|00003530| 75 73 65 2e 2e 2e 0d 09 | 09 09 43 44 5f 67 70 72 |use.....|..CD_gpr|
|00003540| 23 0d 09 09 09 49 46 09 | 09 09 5c 20 69 66 20 77 |#....IF.|..\ if w|
|00003550| 65 27 76 65 20 73 65 74 | 20 69 74 2c 20 77 65 20 |e've set| it, we |
|00003560| 75 73 65 20 69 74 2c 20 | 73 69 6e 63 65 20 74 68 |use it, |since th|
|00003570| 69 73 20 77 69 6c 6c 0d | 09 09 09 09 09 09 5c 20 |is will.|......\ |
|00003580| 20 6a 75 73 74 20 61 62 | 6f 75 74 20 61 6c 77 61 | just ab|out alwa|
|00003590| 79 73 20 67 69 76 65 20 | 75 73 20 61 20 64 69 73 |ys give |us a dis|
|000035a0| 70 6c 20 77 68 69 63 68 | 20 66 69 74 73 0d 09 09 |pl which| fits...|
|000035b0| 09 09 09 09 5c 20 20 69 | 6e 20 31 36 20 62 69 74 |....\ i|n 16 bit|
|000035c0| 73 0d 09 09 09 09 43 44 | 5f 67 70 72 23 20 2d 3e |s.....CD|_gpr# ->|
|000035d0| 20 67 70 72 23 0d 09 09 | 09 09 64 69 73 70 6c 20 | gpr#...|..displ |
|000035e0| 63 6f 64 65 5f 73 74 61 | 72 74 20 2b 20 43 44 5f |code_sta|rt + CD_|
|000035f0| 67 70 72 5f 6c 6f 63 20 | 2d 20 20 2d 3e 20 64 69 |gpr_loc |- -> di|
|00003600| 73 70 6c 27 0d 09 09 09 | 54 48 45 4e 0d 09 09 54 |spl'....|THEN...T|
|00003610| 48 45 4e 0d 0d 09 09 67 | 70 72 23 20 64 69 73 70 |HEN....g|pr# disp|
|00003620| 6c 27 20 20 45 58 49 54 | 0d 09 54 48 45 4e 0d 0d |l' EXIT|..THEN..|
|00003630| 0d 09 67 70 72 23 20 6d | 61 69 6e 44 61 74 61 5f |..gpr# m|ainData_|
|00003640| 72 65 67 20 3d 0d 09 49 | 46 09 09 09 09 5c 20 49 |reg =..I|F....\ I|
|00003650| 66 20 74 68 65 20 61 64 | 64 72 65 73 73 20 69 73 |f the ad|dress is|
|00003660| 20 64 6f 77 6e 20 69 6e | 20 74 68 65 20 63 6f 64 | down in| the cod|
|00003670| 65 20 67 65 6e 65 72 61 | 74 6f 72 0d 09 09 09 09 |e genera|tor.....|
|00003680| 09 5c 20 20 61 72 65 61 | 20 61 6e 64 20 6f 75 74 |.\ area| and out|
|00003690| 20 6f 66 20 72 61 6e 67 | 65 20 66 72 6f 6d 20 6d | of rang|e from m|
|000036a0| 61 69 6e 44 61 74 61 5f | 72 65 67 2c 20 77 65 0d |ainData_|reg, we.|
|000036b0| 09 09 09 09 09 5c 20 20 | 6d 69 67 68 74 20 62 65 |.....\ |might be|
|000036c0| 20 61 62 6c 65 20 74 6f | 20 75 73 65 20 52 54 4f | able to| use RTO|
|000036d0| 43 20 69 6e 73 74 65 61 | 64 2c 20 77 68 69 63 68 |C instea|d, which|
|000036e0| 20 6f 66 0d 09 09 09 09 | 09 5c 20 20 63 6f 75 72 | of.....|.\ cour|
|000036f0| 73 65 20 70 6f 69 6e 74 | 73 20 74 6f 20 74 68 65 |se point|s to the|
|00003700| 20 73 74 61 72 74 20 6f | 66 20 74 68 65 20 64 61 | start o|f the da|
|00003710| 74 61 20 61 72 65 61 2e | 0d 09 09 6d 61 69 6e 44 |ta area.|...mainD|
|00003720| 61 74 61 5f 72 65 67 0d | 09 09 64 69 73 70 6c 20 |ata_reg.|..displ |
|00003730| 20 64 61 74 61 5f 73 74 | 61 72 74 20 2b 20 20 6e | data_st|art + n|
|00003740| 75 63 5f 64 61 74 61 5f | 73 74 61 72 74 20 2d 20 |uc_data_|start - |
|00003750| 20 68 61 6c 66 5f 64 69 | 73 70 6c 5f 72 61 6e 67 | half_di|spl_rang|
|00003760| 65 20 2d 0d 5c 09 09 74 | 72 75 65 20 31 36 62 69 |e -.\..t|rue 16bi|
|00003770| 74 73 3f 20 20 3f 45 58 | 49 54 0d 5c 09 09 0d 5c |ts? ?EX|IT.\...\|
|00003780| 09 09 64 69 73 70 6c 20 | 74 72 75 65 20 31 36 62 |..displ |true 16b|
|00003790| 69 74 73 3f 20 6e 69 70 | 0d 5c 09 09 49 46 09 32 |its? nip|.\..IF.2|
|000037a0| 64 72 6f 70 20 20 52 54 | 4f 43 5f 72 65 67 20 20 |drop RT|OC_reg |
|000037b0| 64 69 73 70 6c 20 20 54 | 48 45 4e 0d 09 09 45 58 |displ T|HEN...EX|
|000037c0| 49 54 0d 09 54 48 45 4e | 0d 0d 09 67 70 72 23 0d |IT..THEN|...gpr#.|
|000037d0| 09 49 46 09 73 65 67 23 | 20 2d 3e 20 73 65 67 23 |.IF.seg#| -> seg#|
|000037e0| 5f 74 6f 5f 75 73 65 0d | 09 09 67 70 72 23 0d 09 |_to_use.|..gpr#..|
|000037f0| 09 64 69 73 70 6c 20 68 | 61 6c 66 5f 64 69 73 70 |.displ h|alf_disp|
|00003800| 6c 5f 72 61 6e 67 65 20 | 2d 0d 09 45 4c 53 45 09 |l_range |-..ELSE.|
|00003810| 09 09 5c 20 74 68 65 41 | 64 64 72 20 77 61 73 6e |..\ theA|ddr wasn|
|00003820| 27 74 20 69 6e 20 72 61 | 6e 67 65 20 6f 66 20 61 |'t in ra|nge of a|
|00003830| 6e 79 20 72 65 67 20 2d | 20 72 65 74 75 72 6e 20 |ny reg -| return |
|00003840| 74 77 6f 20 7a 65 72 6f | 73 0d 09 09 30 20 20 30 |two zero|s...0 0|
|00003850| 0d 09 54 48 45 4e 0d 3b | 0d 0d 0d 0d 3a 20 28 42 |..THEN.;|....: (B|
|00003860| 26 44 29 20 20 28 20 61 | 64 64 72 20 2d 2d 20 67 |&D) ( a|ddr -- g|
|00003870| 70 72 23 20 64 69 73 70 | 6c 20 29 0d 09 61 64 64 |pr# disp|l )..add|
|00003880| 72 3e 53 26 44 20 20 73 | 26 64 3e 62 26 64 0d 3b |r>S&D s|&d>b&d.;|
|00003890| 0d 0d 0d 3a 20 42 26 44 | 20 20 7b 20 74 68 65 41 |...: B&D| { theA|
|000038a0| 64 64 72 20 2d 2d 20 72 | 65 67 23 20 64 69 73 70 |ddr -- r|eg# disp|
|000038b0| 6c 20 7d 0d 09 74 68 65 | 41 64 64 72 20 28 62 26 |l }..the|Addr (b&|
|000038c0| 64 29 20 6f 76 65 72 0d | 09 4e 49 46 09 20 63 72 |d) over.|.NIF. cr|
|000038d0| 20 20 74 68 65 41 64 64 | 72 20 2e 68 20 2e 22 20 | theAdd|r .h ." |
|000038e0| 20 20 69 73 20 61 6e 20 | 6f 75 74 2d 6f 66 2d 72 | is an |out-of-r|
|000038f0| 61 6e 67 65 20 61 64 64 | 72 21 22 20 31 20 64 69 |ange add|r!" 1 di|
|00003900| 65 20 20 54 48 45 4e 0d | 3b 0d 0d 0d 5c 20 40 42 |e THEN.|;...\ @B|
|00003910| 26 44 20 66 65 74 63 68 | 65 73 20 61 20 72 65 6c |&D fetch|es a rel|
|00003920| 6f 63 61 74 61 62 6c 65 | 20 61 64 64 72 20 61 6e |ocatable| addr an|
|00003930| 64 20 72 65 74 75 72 6e | 73 20 74 68 65 20 22 72 |d return|s the "r|
|00003940| 65 61 6c 22 20 62 61 73 | 65 0d 5c 20 67 70 72 23 |eal" bas|e.\ gpr#|
|00003950| 20 61 6e 64 20 64 69 73 | 70 6c 61 63 65 6d 65 6e | and dis|placemen|
|00003960| 74 2e 20 20 54 68 69 73 | 20 69 73 20 75 73 65 64 |t. This| is used|
|00003970| 20 66 6f 72 20 67 6f 69 | 6e 67 20 66 72 6f 6d 20 | for goi|ng from |
|00003980| 74 68 65 20 63 6f 64 65 | 0d 5c 20 20 61 72 65 61 |the code|.\ area|
|00003990| 20 74 6f 20 74 68 65 20 | 64 61 74 61 20 61 72 65 | to the |data are|
|000039a0| 61 2c 20 66 6f 72 20 76 | 61 6c 75 65 73 20 65 74 |a, for v|alues et|
|000039b0| 63 2e 0d 0d 3a 20 40 42 | 26 44 20 7b 20 61 64 64 |c...: @B|&D { add|
|000039c0| 72 20 5c 20 72 65 6c 6f | 63 41 64 64 72 20 73 65 |r \ relo|cAddr se|
|000039d0| 67 23 20 64 69 73 70 6c | 20 67 70 72 23 20 2d 2d |g# displ| gpr# --|
|000039e0| 20 67 70 72 23 20 64 69 | 73 70 6c 27 20 7d 0d 09 | gpr# di|spl' }..|
|000039f0| 61 64 64 72 20 40 20 20 | 2d 3e 20 72 65 6c 6f 63 |addr @ |-> reloc|
|00003a00| 41 64 64 72 0d 09 72 65 | 6c 6f 63 41 64 64 72 20 |Addr..re|locAddr |
|00003a10| 20 24 20 66 66 66 66 66 | 66 20 61 6e 64 20 20 2d | $ fffff|f and -|
|00003a20| 3e 20 64 69 73 70 6c 0d | 09 72 65 6c 6f 63 41 64 |> displ.|.relocAd|
|00003a30| 64 72 20 20 32 34 20 3e | 3e 20 20 2d 3e 20 73 65 |dr 24 >|> -> se|
|00003a40| 67 23 0d 09 73 65 67 23 | 20 64 69 73 70 6c 20 20 |g#..seg#| displ |
|00003a50| 73 26 64 3e 62 26 64 0d | 09 6f 76 65 72 20 4e 49 |s&d>b&d.|.over NI|
|00003a60| 46 20 20 37 30 20 64 69 | 65 20 20 54 48 45 4e 09 |F 70 di|e THEN.|
|00003a70| 09 5c 20 73 65 67 23 20 | 64 69 64 6e 27 74 20 72 |.\ seg# |didn't r|
|00003a80| 65 66 65 72 20 74 6f 20 | 61 20 6c 6f 61 64 65 64 |efer to |a loaded|
|00003a90| 20 72 65 67 2c 20 6f 72 | 20 77 61 73 20 6a 75 73 | reg, or| was jus|
|00003aa0| 74 0d 09 09 09 09 09 09 | 09 09 5c 20 67 61 72 62 |t.......|..\ garb|
|00003ab0| 61 67 65 20 2d 20 22 6e | 6f 74 20 61 20 72 65 6c |age - "n|ot a rel|
|00003ac0| 6f 63 20 61 64 64 72 22 | 0d 28 2a 0d 09 73 65 67 |oc addr"|.(*..seg|
|00003ad0| 23 20 73 65 67 23 3e 67 | 70 72 23 20 20 2d 3e 20 |# seg#>g|pr# -> |
|00003ae0| 67 70 72 23 0d 0d 09 67 | 70 72 23 20 6d 61 69 6e |gpr#...g|pr# main|
|00003af0| 43 6f 64 65 5f 72 65 67 | 20 3d 0d 09 49 46 09 6d |Code_reg| =..IF.m|
|00003b00| 61 69 6e 43 6f 64 65 5f | 72 65 67 0d 09 09 64 69 |ainCode_|reg...di|
|00003b10| 73 70 6c 20 63 6f 64 65 | 5f 73 74 61 72 74 20 2b |spl code|_start +|
|00003b20| 20 6e 75 63 5f 63 6f 64 | 65 5f 73 74 61 72 74 20 | nuc_cod|e_start |
|00003b30| 2d 20 20 68 61 6c 66 5f | 64 69 73 70 6c 5f 72 61 |- half_|displ_ra|
|00003b40| 6e 67 65 20 2d 0d 09 09 | 45 58 49 54 0d 09 54 48 |nge -...|EXIT..TH|
|00003b50| 45 4e 0d 09 0d 09 67 70 | 72 23 20 6d 61 69 6e 44 |EN....gp|r# mainD|
|00003b60| 61 74 61 5f 72 65 67 20 | 3d 0d 09 49 46 09 6d 61 |ata_reg |=..IF.ma|
|00003b70| 69 6e 44 61 74 61 5f 72 | 65 67 0d 09 09 64 69 73 |inData_r|eg...dis|
|00003b80| 70 6c 20 20 64 61 74 61 | 5f 73 74 61 72 74 20 2b |pl data|_start +|
|00003b90| 20 20 6e 75 63 5f 64 61 | 74 61 5f 73 74 61 72 74 | nuc_da|ta_start|
|00003ba0| 20 2d 20 20 68 61 6c 66 | 5f 64 69 73 70 6c 5f 72 | - half|_displ_r|
|00003bb0| 61 6e 67 65 20 2d 0d 09 | 09 45 58 49 54 0d 09 54 |ange -..|.EXIT..T|
|00003bc0| 48 45 4e 0d 0d 09 67 70 | 72 23 0d 09 49 46 09 67 |HEN...gp|r#..IF.g|
|00003bd0| 70 72 23 20 20 64 69 73 | 70 6c 20 68 61 6c 66 5f |pr# dis|pl half_|
|00003be0| 64 69 73 70 6c 5f 72 61 | 6e 67 65 20 2d 0d 09 09 |displ_ra|nge -...|
|00003bf0| 09 09 09 5c 20 6d 61 63 | 68 69 6e 65 20 69 6e 73 |...\ mac|hine ins|
|00003c00| 74 72 6e 73 20 75 73 65 | 20 61 20 73 69 67 6e 65 |trns use| a signe|
|00003c10| 64 20 64 69 73 70 6c 2c | 20 73 6f 20 77 65 0d 09 |d displ,| so we..|
|00003c20| 09 09 09 09 5c 20 20 70 | 6f 69 6e 74 20 62 61 73 |....\ p|oint bas|
|00003c30| 65 20 72 65 67 73 20 33 | 32 6b 20 61 62 6f 76 65 |e regs 3|2k above|
|00003c40| 20 74 68 65 20 73 65 67 | 20 73 74 61 72 74 0d 09 | the seg| start..|
|00003c50| 09 09 09 09 09 09 09 09 | 09 0d 09 45 4c 53 45 09 |........|...ELSE.|
|00003c60| 09 09 5c 20 73 65 67 23 | 20 64 69 64 6e 27 74 20 |..\ seg#| didn't |
|00003c70| 72 65 66 65 72 20 74 6f | 20 61 20 6c 6f 61 64 65 |refer to| a loade|
|00003c80| 64 20 72 65 67 2c 20 6f | 72 20 77 61 73 20 6a 75 |d reg, o|r was ju|
|00003c90| 73 74 20 67 61 72 62 61 | 67 65 0d 09 09 37 30 20 |st garba|ge...70 |
|00003ca0| 64 69 65 09 09 5c 20 22 | 20 6e 6f 74 20 61 20 72 |die..\ "| not a r|
|00003cb0| 65 6c 6f 63 20 61 64 64 | 72 22 0d 09 54 48 45 4e |eloc add|r"..THEN|
|00003cc0| 0d 2a 29 0d 3b 0d 0d 0d | 3a 20 52 45 4c 4f 43 21 |.*).;...|: RELOC!|
|00003cd0| 20 20 7b 20 74 68 65 41 | 64 64 72 20 64 65 73 74 | { theA|ddr dest|
|00003ce0| 20 2d 2d 20 7d 0d 5c 20 | 74 68 65 41 64 64 72 20 | -- }.\ |theAddr |
|00003cf0| 24 20 31 30 30 30 20 75 | 3c 20 69 66 20 64 62 67 |$ 1000 u|< if dbg|
|00003d00| 72 20 74 68 65 6e 0d 09 | 74 68 65 41 64 64 72 20 |r then..|theAddr |
|00003d10| 61 64 64 72 3e 53 26 44 | 0d 09 24 20 66 66 66 66 |addr>S&D|..$ ffff|
|00003d20| 66 66 20 61 6e 64 20 20 | 73 77 61 70 20 20 32 34 |ff and |swap 24|
|00003d30| 20 3c 3c 20 20 6f 72 0d | 09 64 65 73 74 20 21 0d | << or.|.dest !.|
|00003d40| 3b 0d 0d 0d 0d 5c 09 09 | 09 09 3d 3d 3d 3d 3d 3d |;....\..|..======|
|00003d50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003d60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 5c 09 09 09 09 |========|==.\....|
|00003d70| 43 4f 4e 56 45 52 53 49 | 4f 4e 20 42 45 54 57 45 |CONVERSI|ON BETWE|
|00003d80| 45 4e 20 52 45 4c 41 54 | 49 56 45 20 41 4e 44 0d |EN RELAT|IVE AND.|
|00003d90| 5c 09 09 09 20 20 20 20 | 20 09 41 42 53 4f 4c 55 |\... | .ABSOLU|
|00003da0| 54 45 20 41 44 44 52 45 | 53 53 45 53 0d 5c 09 09 |TE ADDRE|SSES.\..|
|00003db0| 09 09 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..======|========|
|00003dc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003dd0| 3d 3d 0d 0d 5c 20 4e 6f | 74 65 3a 20 40 61 62 73 |==..\ No|te: @abs|
|00003de0| 20 69 73 20 61 6c 72 65 | 61 64 79 20 64 65 66 69 | is alre|ady defi|
|00003df0| 6e 65 64 20 69 6e 20 53 | 65 74 75 70 2c 20 73 69 |ned in S|etup, si|
|00003e00| 6e 63 65 20 77 65 20 6e | 65 65 64 65 64 20 69 74 |nce we n|eeded it|
|00003e10| 20 65 61 72 6c 69 65 72 | 2e 0d 0d 0d 3a 20 44 49 | earlier|....: DI|
|00003e20| 53 50 4c 41 43 45 20 20 | 20 28 20 61 64 64 72 20 |SPLACE | ( addr |
|00003e30| 2d 2d 20 61 64 64 72 27 | 20 29 20 20 69 6e 6c 69 |-- addr'| ) inli|
|00003e40| 6e 65 7b 20 64 75 70 20 | 40 20 64 75 70 20 69 66 |ne{ dup |@ dup if|
|00003e50| 20 2b 20 65 6c 73 65 20 | 6e 69 70 20 74 68 65 6e | + else |nip then|
|00003e60| 7d 20 20 3b 0d 3a 20 57 | 44 49 53 50 4c 41 43 45 |} ;.: W|DISPLACE|
|00003e70| 20 20 28 20 61 64 64 72 | 20 2d 2d 20 61 64 64 72 | ( addr| -- addr|
|00003e80| 27 20 29 20 20 69 6e 6c | 69 6e 65 7b 20 64 75 70 |' ) inl|ine{ dup|
|00003e90| 20 77 40 78 20 64 75 70 | 20 69 66 20 2b 20 65 6c | w@x dup| if + el|
|00003ea0| 73 65 20 6e 69 70 20 74 | 68 65 6e 7d 20 20 3b 0d |se nip t|hen} ;.|
|00003eb0| 0d 3a 20 44 49 53 50 4c | 21 20 20 7b 20 73 72 63 |.: DISPL|! { src|
|00003ec0| 20 64 73 74 20 2d 2d 20 | 7d 0d 5c 20 53 74 6f 72 | dst -- |}.\ Stor|
|00003ed0| 65 73 20 74 68 65 20 73 | 6f 75 72 63 65 20 61 64 |es the s|ource ad|
|00003ee0| 64 72 65 73 73 20 61 73 | 20 61 20 72 65 6c 61 74 |dress as| a relat|
|00003ef0| 69 76 65 20 61 64 64 72 | 65 73 73 20 61 74 20 74 |ive addr|ess at t|
|00003f00| 68 65 20 64 65 73 74 69 | 6e 61 74 69 6f 6e 2e 0d |he desti|nation..|
|00003f10| 09 73 72 63 20 64 73 74 | 20 2d 20 20 64 73 74 20 |.src dst| - dst |
|00003f20| 21 20 20 3b 0d 0d 3a 20 | 57 44 49 53 50 4c 21 20 |! ;..: |WDISPL! |
|00003f30| 20 7b 20 73 72 63 20 64 | 73 74 20 2d 2d 20 7d 0d | { src d|st -- }.|
|00003f40| 5c 20 53 74 6f 72 65 73 | 20 74 68 65 20 73 6f 75 |\ Stores| the sou|
|00003f50| 72 63 65 20 61 64 64 72 | 65 73 73 20 61 73 20 61 |rce addr|ess as a|
|00003f60| 20 73 68 6f 72 74 20 72 | 65 6c 61 74 69 76 65 20 | short r|elative |
|00003f70| 61 64 64 72 65 73 73 20 | 61 74 20 74 68 65 20 64 |address |at the d|
|00003f80| 65 73 74 69 6e 61 74 69 | 6f 6e 0d 5c 20 28 69 74 |estinati|on.\ (it|
|00003f90| 20 69 73 20 72 65 6c 61 | 74 69 76 65 20 74 6f 20 | is rela|tive to |
|00003fa0| 74 68 65 20 64 65 73 74 | 69 6e 61 74 69 6f 6e 29 |the dest|ination)|
|00003fb0| 2e 0d 09 73 72 63 20 64 | 73 74 20 2d 20 20 64 73 |...src d|st - ds|
|00003fc0| 74 20 77 21 20 20 3b 0d | 0d 0d 3a 20 72 65 6c 6f |t w! ;.|..: relo|
|00003fd0| 63 2c 09 09 44 50 09 72 | 65 6c 6f 63 21 20 20 34 |c,..DP.r|eloc! 4|
|00003fe0| 20 2b 2b 3e 20 44 50 20 | 20 20 3b 0d 3a 20 72 65 | ++> DP | ;.: re|
|00003ff0| 6c 6f 63 43 6f 64 65 2c | 09 43 44 50 20 72 65 6c |locCode,|.CDP rel|
|00004000| 6f 63 21 20 20 34 20 2b | 2b 3e 20 43 44 50 20 20 |oc! 4 +|+> CDP |
|00004010| 3b 0d 3a 20 64 69 73 70 | 6c 43 6f 64 65 2c 09 43 |;.: disp|lCode,.C|
|00004020| 44 50 20 64 69 73 70 6c | 21 09 34 20 2b 2b 3e 20 |DP displ|!.4 ++> |
|00004030| 43 44 50 20 20 3b 0d 0d | 0d 0d 5c 09 09 09 3d 3d |CDP ;..|..\...==|
|00004040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004050| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004060| 3d 3d 3d 0d 5c 09 09 09 | 09 09 44 49 43 54 49 4f |===.\...|..DICTIO|
|00004070| 4e 41 52 59 20 4f 50 45 | 52 41 54 49 4f 4e 53 0d |NARY OPE|RATIONS.|
|00004080| 5c 09 09 09 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |\...====|========|
|00004090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0d 66 6f 72 77 61 |========|=..forwa|
|000040b0| 72 64 20 64 65 66 69 6e | 65 64 3f 09 09 5c 20 6e |rd defin|ed?..\ n|
|000040c0| 65 65 64 65 64 20 62 79 | 20 46 4f 52 47 45 54 2e |eeded by| FORGET.|
|000040d0| 20 20 44 65 66 69 6e 65 | 64 20 69 6e 20 70 6e 75 | Define|d in pnu|
|000040e0| 63 34 2e 0d 0d 0d 28 2a | 0d 50 61 74 63 68 65 73 |c4....(*|.Patches|
|000040f0| 5f 64 6f 6e 65 20 69 73 | 20 63 61 6c 6c 65 64 20 |_done is| called |
|00004100| 6f 6e 20 74 68 65 20 36 | 38 6b 20 61 66 74 65 72 |on the 6|8k after|
|00004110| 20 61 6e 79 20 6e 65 77 | 20 69 6e 73 74 72 75 63 | any new| instruc|
|00004120| 74 69 6f 6e 73 20 68 61 | 76 65 20 62 65 65 6e 0d |tions ha|ve been.|
|00004130| 73 74 6f 72 65 64 2c 20 | 6f 72 20 70 61 74 63 68 |stored, |or patch|
|00004140| 65 73 20 68 61 76 65 20 | 62 65 65 6e 20 64 6f 6e |es have |been don|
|00004150| 65 2c 20 61 6e 64 20 62 | 65 66 6f 72 65 20 74 68 |e, and b|efore th|
|00004160| 65 20 69 6e 73 74 72 75 | 63 74 69 6f 6e 73 20 61 |e instru|ctions a|
|00004170| 72 65 0d 65 78 65 63 75 | 74 65 64 2e 20 20 49 74 |re.execu|ted. It|
|00004180| 20 66 6c 75 73 68 65 73 | 20 74 68 65 20 69 6e 73 | flushes| the ins|
|00004190| 74 72 75 63 74 69 6f 6e | 20 63 61 63 68 65 20 69 |truction| cache i|
|000041a0| 66 20 6e 65 63 65 73 73 | 61 72 79 2e 0d 0d 4f 6e |f necess|ary...On|
|000041b0| 20 73 6f 6d 65 20 50 50 | 43 20 6d 6f 64 65 6c 73 | some PP|C models|
|000041c0| 20 74 68 65 72 65 27 73 | 20 61 6c 73 6f 20 61 20 | there's| also a |
|000041d0| 73 65 70 61 72 61 74 65 | 20 69 63 61 63 68 65 20 |separate| icache |
|000041e0| 61 6e 64 20 64 63 61 63 | 68 65 2c 20 73 6f 20 77 |and dcac|he, so w|
|000041f0| 65 20 68 61 76 65 0d 74 | 6f 20 64 6f 20 74 68 65 |e have.t|o do the|
|00004200| 20 73 61 6d 65 20 73 6f | 72 74 20 6f 66 20 74 68 | same so|rt of th|
|00004210| 69 6e 67 2e 20 20 54 68 | 65 20 61 70 70 72 6f 70 |ing. Th|e approp|
|00004220| 72 69 61 74 65 20 73 65 | 71 75 65 6e 63 65 20 6f |riate se|quence o|
|00004230| 66 20 6f 70 73 20 6d 75 | 73 74 0d 62 65 20 65 78 |f ops mu|st.be ex|
|00004240| 65 63 75 74 65 64 20 77 | 69 74 68 20 69 6e 74 65 |ecuted w|ith inte|
|00004250| 72 72 75 70 74 73 20 6f | 66 66 2c 20 73 6f 20 41 |rrupts o|ff, so A|
|00004260| 70 70 6c 65 20 68 65 6c | 70 66 75 6c 6c 79 20 70 |pple hel|pfully p|
|00004270| 72 6f 76 69 64 65 73 20 | 61 20 63 61 6c 6c 0d 74 |rovides |a call.t|
|00004280| 6f 20 64 6f 20 69 74 20 | 2d 2d 20 4d 61 6b 65 44 |o do it |-- MakeD|
|00004290| 61 74 61 45 78 65 63 75 | 74 61 62 6c 65 2e 0d 2a |ataExecu|table..*|
|000042a0| 29 0d 0d 3a 66 20 46 49 | 58 5f 43 41 43 48 45 53 |)..:f FI|X_CACHES|
|000042b0| 20 20 7b 20 61 64 64 72 | 20 6c 65 6e 20 2d 2d 20 | { addr| len -- |
|000042c0| 7d 0d 09 6c 65 6e 20 30 | 45 58 49 54 0d 09 61 64 |}..len 0|EXIT..ad|
|000042d0| 64 72 20 6c 65 6e 20 20 | 25 5f 4d 61 6b 65 44 61 |dr len |%_MakeDa|
|000042e0| 74 61 45 78 65 63 75 74 | 61 62 6c 65 0d 3b 66 0d |taExecut|able.;f.|
|000042f0| 0d 0d 5c 20 3a 20 41 4c | 4c 4f 54 09 09 28 20 6e |..\ : AL|LOT..( n|
|00004300| 20 2d 2d 20 29 09 2b 2b | 3e 20 44 50 20 20 3b 0d | -- ).++|> DP ;.|
|00004310| 3a 20 52 45 53 45 52 56 | 45 09 28 20 6e 20 2d 2d |: RESERV|E.( n --|
|00004320| 20 29 09 44 50 20 6f 76 | 65 72 20 30 20 66 69 6c | ).DP ov|er 0 fil|
|00004330| 6c 20 20 2b 2b 3e 20 44 | 50 20 20 3b 0d 0d 3a 20 |l ++> D|P ;..: |
|00004340| 2c 20 20 28 20 6e 20 2d | 2d 20 29 09 44 50 20 21 |, ( n -|- ).DP !|
|00004350| 09 34 20 2b 2b 3e 20 44 | 50 20 20 3b 0d 3a 20 57 |.4 ++> D|P ;.: W|
|00004360| 2c 20 28 20 6e 20 2d 2d | 20 29 09 44 50 20 77 21 |, ( n --| ).DP w!|
|00004370| 09 32 20 2b 2b 3e 20 44 | 50 20 20 3b 0d 3a 20 43 |.2 ++> D|P ;.: C|
|00004380| 2c 20 28 20 6e 20 2d 2d | 20 29 09 44 50 20 63 21 |, ( n --| ).DP c!|
|00004390| 09 31 20 2b 2b 3e 20 44 | 50 20 20 3b 0d 0d 3a 20 |.1 ++> D|P ;..: |
|000043a0| 4e 2c 20 28 20 61 64 64 | 72 20 6c 65 6e 20 2d 2d |N, ( add|r len --|
|000043b0| 20 29 09 3e 72 20 20 44 | 50 20 72 40 20 63 6d 6f | ).>r D|P r@ cmo|
|000043c0| 76 65 20 20 72 3e 20 61 | 6c 6c 6f 74 20 20 3b 0d |ve r> a|llot ;.|
|000043d0| 0d 3a 20 44 49 53 50 4c | 2c 20 20 28 20 73 72 63 |.: DISPL|, ( src|
|000043e0| 20 2d 2d 20 29 0d 09 44 | 50 20 2d 20 20 2c 20 20 | -- )..D|P - , |
|000043f0| 3b 0d 0d 0d 3a 20 63 6f | 64 65 2c 09 09 43 44 50 |;...: co|de,..CDP|
|00004400| 20 21 09 34 20 2b 2b 3e | 20 43 44 50 20 20 3b 0d | !.4 ++>| CDP ;.|
|00004410| 3a 20 63 6f 64 65 57 2c | 09 43 44 50 20 77 21 09 |: codeW,|.CDP w!.|
|00004420| 32 20 2b 2b 3e 20 43 44 | 50 20 20 3b 0d 3a 20 63 |2 ++> CD|P ;.: c|
|00004430| 6f 64 65 43 2c 09 43 44 | 50 20 63 21 09 31 20 2b |odeC,.CD|P c!.1 +|
|00004440| 2b 3e 20 43 44 50 20 20 | 3b 0d 0d 3a 20 63 6f 64 |+> CDP |;..: cod|
|00004450| 65 4e 2c 20 20 28 20 61 | 64 64 72 20 6c 65 6e 20 |eN, ( a|ddr len |
|00004460| 2d 2d 20 29 0d 09 74 75 | 63 6b 0d 09 43 44 50 20 |-- )..tu|ck..CDP |
|00004470| 73 77 61 70 20 63 6d 6f | 76 65 0d 09 2b 2b 3e 20 |swap cmo|ve..++> |
|00004480| 43 44 50 0d 3b 0d 0d 3a | 20 41 4c 49 47 4e 34 0d |CDP.;..:| ALIGN4.|
|00004490| 09 44 50 0d 09 34 20 72 | 65 73 65 72 76 65 09 09 |.DP..4 r|eserve..|
|000044a0| 09 5c 20 6a 75 73 74 20 | 74 6f 20 65 6e 73 75 72 |.\ just |to ensur|
|000044b0| 65 20 70 61 64 20 62 79 | 74 65 73 20 61 72 65 20 |e pad by|tes are |
|000044c0| 7a 65 72 6f 0d 09 33 20 | 2b 20 20 24 20 66 66 66 |zero..3 |+ $ fff|
|000044d0| 66 66 66 66 63 20 61 6e | 64 20 20 2d 3e 20 44 50 |ffffc an|d -> DP|
|000044e0| 0d 3b 0d 0d 3a 20 41 4c | 49 47 4e 38 0d 09 44 50 |.;..: AL|IGN8..DP|
|000044f0| 0d 09 38 20 72 65 73 65 | 72 76 65 0d 09 37 20 2b |..8 rese|rve..7 +|
|00004500| 20 20 24 20 66 66 66 66 | 66 66 66 38 20 61 6e 64 | $ ffff|fff8 and|
|00004510| 20 20 2d 3e 20 44 50 0d | 3b 0d 0d 3a 20 41 4c 49 | -> DP.|;..: ALI|
|00004520| 47 4e 09 09 61 6c 69 67 | 6e 34 20 20 3b 0d 3a 20 |GN..alig|n4 ;.: |
|00004530| 41 4c 49 47 4e 2d 44 50 | 09 61 6c 69 67 6e 34 20 |ALIGN-DP|.align4 |
|00004540| 20 3b 0d 0d 3a 20 23 41 | 4c 49 47 4e 09 69 6e 6c | ;..: #A|LIGN.inl|
|00004550| 69 6e 65 7b 20 33 2b 20 | 2d 34 20 61 6e 64 7d 20 |ine{ 3+ |-4 and} |
|00004560| 20 3b 09 09 5c 20 61 20 | 73 79 6e 6f 6e 79 6d 20 | ;..\ a |synonym |
|00004570| 66 6f 72 20 23 61 6c 69 | 67 6e 34 20 28 69 6e 20 |for #ali|gn4 (in |
|00004580| 70 6e 75 63 31 29 0d 09 | 09 09 09 09 09 09 09 09 |pnuc1)..|........|
|00004590| 09 5c 20 20 2d 20 6f 6e | 20 74 68 65 20 50 50 43 |.\ - on| the PPC|
|000045a0| 20 6f 75 72 20 64 65 66 | 61 75 6c 74 20 61 6c 69 | our def|ault ali|
|000045b0| 67 6e 6d 65 6e 74 20 69 | 73 0d 09 09 09 09 09 09 |gnment i|s.......|
|000045c0| 09 09 09 09 5c 20 20 34 | 20 62 79 74 65 0d 3a 20 |....\ 4| byte.: |
|000045d0| 41 4c 49 47 4e 45 44 09 | 69 6e 6c 69 6e 65 7b 20 |ALIGNED.|inline{ |
|000045e0| 33 2b 20 2d 34 20 61 6e | 64 7d 20 20 3b 09 09 5c |3+ -4 an|d} ;..\|
|000045f0| 20 41 4e 53 49 20 2d 20 | 73 61 6d 65 20 61 73 20 | ANSI - |same as |
|00004600| 23 61 6c 69 67 6e 34 20 | 6f 6e 20 50 50 43 0d 3a |#align4 |on PPC.:|
|00004610| 20 23 41 4c 49 47 4e 32 | 09 69 6e 6c 69 6e 65 7b | #ALIGN2|.inline{|
|00004620| 20 31 2b 20 2d 32 20 61 | 6e 64 7d 20 20 3b 0d 0d | 1+ -2 a|nd} ;..|
|00004630| 5c 20 23 61 6c 69 67 6e | 34 20 69 73 20 69 6e 20 |\ #align|4 is in |
|00004640| 70 6e 75 63 31 2c 20 73 | 69 6e 63 65 20 77 65 20 |pnuc1, s|ince we |
|00004650| 6e 65 65 64 20 69 74 20 | 65 61 72 6c 79 0d 0d 3a |need it |early..:|
|00004660| 20 23 41 4c 49 47 4e 38 | 09 69 6e 6c 69 6e 65 7b | #ALIGN8|.inline{|
|00004670| 20 37 20 2b 20 20 24 20 | 66 66 66 66 66 66 66 38 | 7 + $ |fffffff8|
|00004680| 20 61 6e 64 7d 20 20 3b | 0d 3a 20 23 41 4c 49 47 | and} ;|.: #ALIG|
|00004690| 4e 31 36 09 69 6e 6c 69 | 6e 65 7b 20 31 35 20 2b |N16.inli|ne{ 15 +|
|000046a0| 20 20 24 20 66 66 66 66 | 66 66 66 30 20 61 6e 64 | $ ffff|fff0 and|
|000046b0| 7d 20 20 3b 0d 0d 3a 20 | 23 61 6c 69 67 6e 5f 32 |} ;..: |#align_2|
|000046c0| 2a 2a 6e 09 28 20 76 61 | 6c 75 65 20 6e 20 2d 2d |**n.( va|lue n --|
|000046d0| 20 76 61 6c 75 65 27 20 | 29 0d 09 31 20 73 77 61 | value' |)..1 swa|
|000046e0| 70 20 3c 3c 20 31 2d 20 | 64 75 70 20 6e 6f 74 20 |p << 1- |dup not |
|000046f0| 64 6f 77 6e 20 2b 20 61 | 6e 64 20 20 3b 0d 09 09 |down + a|nd ;...|
|00004700| 09 0d 0d 3a 20 23 4f 46 | 46 2d 41 4c 49 47 4e 09 |...: #OF|F-ALIGN.|
|00004710| 5c 20 28 20 6e 20 2d 2d | 20 6e 27 20 29 20 20 41 |\ ( n --| n' ) A|
|00004720| 6c 69 67 6e 73 20 74 6f | 20 74 68 65 20 32 2d 62 |ligns to| the 2-b|
|00004730| 79 74 65 20 62 6f 75 6e | 64 61 72 79 20 62 65 74 |yte boun|dary bet|
|00004740| 77 65 65 6e 0d 09 09 09 | 09 5c 20 20 61 64 6a 61 |ween....|.\ adja|
|00004750| 63 65 6e 74 20 34 2d 62 | 79 74 65 20 62 6f 75 6e |cent 4-b|yte boun|
|00004760| 64 61 72 69 65 73 2e 0d | 09 35 20 2b 20 24 20 66 |daries..|.5 + $ f|
|00004770| 66 66 66 66 66 66 63 20 | 61 6e 64 20 32 2d 20 20 |ffffffc |and 2- |
|00004780| 3b 0d 0d 0d 0d 3a 20 63 | 6f 64 65 5f 61 6c 6c 6f |;....: c|ode_allo|
|00004790| 74 09 2b 2b 3e 20 43 44 | 50 20 20 3b 0d 3a 20 63 |t.++> CD|P ;.: c|
|000047a0| 6f 64 65 5f 72 65 73 65 | 72 76 65 09 43 44 50 20 |ode_rese|rve.CDP |
|000047b0| 6f 76 65 72 20 65 72 61 | 73 65 20 20 2b 2b 3e 20 |over era|se ++> |
|000047c0| 43 44 50 20 20 3b 0d 3a | 20 63 6f 64 65 5f 61 6c |CDP ;.:| code_al|
|000047d0| 69 67 6e 09 43 44 50 20 | 34 20 65 72 61 73 65 20 |ign.CDP |4 erase |
|000047e0| 20 43 44 50 20 23 61 6c | 69 67 6e 34 20 20 2d 3e | CDP #al|ign4 ->|
|000047f0| 20 43 44 50 20 20 3b 0d | 0d 0d 0d 5c 20 46 4f 52 | CDP ;.|...\ FOR|
|00004800| 47 45 54 20 69 73 6e 27 | 74 20 72 65 61 6c 6c 79 |GET isn'|t really|
|00004810| 20 61 64 65 71 75 61 74 | 65 20 6f 6e 20 74 68 65 | adequat|e on the|
|00004820| 20 50 50 43 2c 20 73 69 | 6e 63 65 20 69 74 20 63 | PPC, si|nce it c|
|00004830| 61 6e 27 74 20 68 61 6e | 64 6c 65 20 74 68 65 0d |an't han|dle the.|
|00004840| 5c 20 20 64 61 74 61 20 | 61 72 65 61 20 6f 72 20 |\ data |area or |
|00004850| 73 79 73 63 61 6c 6c 5f | 63 68 61 69 6e 20 65 74 |syscall_|chain et|
|00004860| 63 2e 20 20 42 75 74 20 | 49 27 6c 6c 20 6b 65 65 |c. But |I'll kee|
|00004870| 70 20 69 74 20 66 6f 72 | 20 62 61 63 6b 77 61 72 |p it for| backwar|
|00004880| 64 0d 5c 20 20 63 6f 6d | 70 61 74 69 62 69 6c 69 |d.\ com|patibili|
|00004890| 74 79 2c 20 61 6e 64 20 | 69 74 20 63 61 6e 20 62 |ty, and |it can b|
|000048a0| 65 20 63 61 6c 6c 65 64 | 20 62 79 20 4d 41 52 4b |e called| by MARK|
|000048b0| 45 52 20 61 6e 79 77 61 | 79 20 74 6f 20 64 6f 20 |ER anywa|y to do |
|000048c0| 74 68 65 0d 5c 20 20 70 | 61 72 74 20 6f 66 20 74 |the.\ p|art of t|
|000048d0| 68 65 20 6a 6f 62 20 74 | 68 61 74 20 69 74 20 63 |he job t|hat it c|
|000048e0| 61 6e 2e 0d 0d 0d 5c 20 | 54 72 69 6d 20 20 28 20 |an....\ |Trim ( |
|000048f0| 6c 66 61 20 2d 2d 20 6e | 65 77 5f 6c 61 74 65 73 |lfa -- n|ew_lates|
|00004900| 74 20 29 20 20 69 73 20 | 63 61 6c 6c 65 64 20 62 |t ) is |called b|
|00004910| 79 20 28 66 6f 72 67 65 | 74 29 2e 0d 0d 3a 20 74 |y (forge|t)...: t|
|00004920| 72 69 6d 20 20 7b 20 6c | 66 61 20 5c 20 63 78 74 |rim { l|fa \ cxt|
|00004930| 20 6e 78 74 20 6c 69 6e | 6b 20 6e 65 77 5f 6c 66 | nxt lin|k new_lf|
|00004940| 61 20 2d 2d 20 6e 65 77 | 5f 6c 61 74 65 73 74 20 |a -- new|_latest |
|00004950| 7d 0d 0d 09 30 20 2d 3e | 20 6e 65 77 5f 6c 66 61 |}...0 ->| new_lfa|
|00004960| 0d 09 23 74 68 72 65 61 | 64 73 20 46 4f 52 0d 09 |..#threa|ds FOR..|
|00004970| 09 63 6f 6e 74 65 78 74 | 20 20 69 20 20 32 20 3c |.context| i 2 <|
|00004980| 3c 20 20 2b 20 20 64 75 | 70 20 2d 3e 20 63 78 74 |< + du|p -> cxt|
|00004990| 09 09 5c 20 61 64 64 72 | 20 6f 66 20 74 68 69 73 |..\ addr| of this|
|000049a0| 20 63 6f 6e 74 65 78 74 | 20 65 6e 74 72 79 0d 09 | context| entry..|
|000049b0| 09 64 69 73 70 6c 61 63 | 65 0d 09 09 42 45 47 49 |.displac|e...BEGI|
|000049c0| 4e 09 64 75 70 20 6c 66 | 61 20 75 3e 3d 0d 09 09 |N.dup lf|a u>=...|
|000049d0| 57 48 49 4c 45 09 64 69 | 73 70 6c 61 63 65 0d 09 |WHILE.di|splace..|
|000049e0| 09 52 45 50 45 41 54 0d | 09 5c 20 6e 65 77 20 63 |.REPEAT.|.\ new c|
|000049f0| 6f 6e 74 65 78 74 20 76 | 61 6c 75 65 20 66 6f 72 |ontext v|alue for|
|00004a00| 20 74 68 69 73 20 74 68 | 72 65 61 64 0d 09 09 64 | this th|read...d|
|00004a10| 75 70 20 6e 65 77 5f 6c | 66 61 20 75 6d 61 78 20 |up new_l|fa umax |
|00004a20| 2d 3e 20 6e 65 77 5f 6c | 66 61 0d 09 09 63 78 74 |-> new_l|fa...cxt|
|00004a30| 20 64 69 73 70 6c 21 0d | 09 4e 45 58 54 0d 09 6e | displ!.|.NEXT..n|
|00004a40| 65 77 5f 6c 66 61 20 6c | 3e 6e 61 6d 65 09 09 5c |ew_lfa l|>name..\|
|00004a50| 20 6e 65 77 20 6c 69 6e | 6b 20 66 69 65 6c 64 20 | new lin|k field |
|00004a60| 2d 3e 20 6e 65 77 20 6e | 61 6d 65 20 66 69 65 6c |-> new n|ame fiel|
|00004a70| 64 2c 20 77 68 69 63 68 | 0d 09 09 09 09 09 09 5c |d, which|.......\|
|00004a80| 20 20 77 69 6c 6c 20 62 | 65 63 6f 6d 65 20 74 68 | will b|ecome th|
|00004a90| 65 20 6e 65 77 20 4c 41 | 54 45 53 54 0d 3b 0d 0d |e new LA|TEST.;..|
|00004aa0| 0d 3a 20 28 46 4f 52 47 | 45 54 29 20 20 7b 20 6c |.: (FORG|ET) { l|
|00004ab0| 66 61 20 2d 2d 20 7d 0d | 09 6c 66 61 20 66 65 6e |fa -- }.|.lfa fen|
|00004ac0| 63 65 20 75 3c 20 49 46 | 20 20 2d 31 35 20 64 69 |ce u< IF| -15 di|
|00004ad0| 65 20 20 54 48 45 4e 09 | 09 5c 20 22 69 6e 76 61 |e THEN.|.\ "inva|
|00004ae0| 6c 69 64 20 46 4f 52 47 | 45 54 22 0d 09 6c 66 61 |lid FORG|ET"..lfa|
|00004af0| 20 74 72 69 6d 20 20 2d | 3e 20 6c 61 74 65 73 74 | trim -|> latest|
|00004b00| 0d 0d 5c 20 6e 6f 77 20 | 77 65 20 72 65 73 65 74 |..\ now |we reset|
|00004b10| 20 43 44 50 20 74 6f 20 | 6c 66 61 2e 20 20 46 69 | CDP to |lfa. Fi|
|00004b20| 72 73 74 20 77 65 20 63 | 61 6c 6c 20 66 69 78 5f |rst we c|all fix_|
|00004b30| 63 61 63 68 65 73 20 6f | 6e 20 74 68 65 20 72 61 |caches o|n the ra|
|00004b40| 6e 67 65 0d 5c 20 20 77 | 65 27 72 65 20 77 69 70 |nge.\ w|e're wip|
|00004b50| 69 6e 67 20 6f 75 74 2c | 20 73 69 6e 63 65 20 69 |ing out,| since i|
|00004b60| 74 20 64 6f 65 73 6e 27 | 74 20 65 78 69 73 74 20 |t doesn'|t exist |
|00004b70| 61 6e 79 20 6d 6f 72 65 | 2c 20 61 6e 64 20 77 65 |any more|, and we|
|00004b80| 27 72 65 0d 5c 20 20 61 | 20 62 69 74 20 70 61 72 |'re.\ a| bit par|
|00004b90| 61 6e 6f 69 64 2e 0d 0d | 09 6c 66 61 09 09 09 09 |anoid...|.lfa....|
|00004ba0| 09 5c 20 77 68 65 72 65 | 20 77 65 27 72 65 20 77 |.\ where| we're w|
|00004bb0| 69 70 69 6e 67 20 6f 75 | 74 20 66 72 6f 6d 0d 09 |iping ou|t from..|
|00004bc0| 43 44 50 20 6c 66 61 20 | 2d 09 09 09 5c 20 23 20 |CDP lfa |-...\ # |
|00004bd0| 62 79 74 65 73 20 77 65 | 27 72 65 20 77 69 70 69 |bytes we|'re wipi|
|00004be0| 6e 67 20 6f 75 74 0d 09 | 66 69 78 5f 63 61 63 68 |ng out..|fix_cach|
|00004bf0| 65 73 0d 09 6c 66 61 20 | 2d 3e 20 43 44 50 09 09 |es..lfa |-> CDP..|
|00004c00| 09 5c 20 72 65 73 65 74 | 20 43 44 50 20 74 6f 20 |.\ reset| CDP to |
|00004c10| 6e 65 77 20 73 70 6f 74 | 0d 3b 0d 0d 0d 3a 20 46 |new spot|.;...: F|
|00004c20| 4f 52 47 45 54 0d 09 64 | 65 66 69 6e 65 64 3f 20 |ORGET..d|efined? |
|00004c30| 3f 6e 6f 74 66 6f 75 6e | 64 09 09 5c 20 69 2e 65 |?notfoun|d..\ i.e|
|00004c40| 2e 20 74 69 63 6b 20 2d | 20 62 75 74 20 77 65 20 |. tick -| but we |
|00004c50| 63 61 6e 27 74 20 64 65 | 66 69 6e 65 20 74 68 61 |can't de|fine tha|
|00004c60| 74 20 79 65 74 20 73 69 | 6e 63 65 0d 09 09 09 09 |t yet si|nce.....|
|00004c70| 09 09 09 5c 20 20 77 65 | 20 73 74 69 6c 6c 20 6e |...\ we| still n|
|00004c80| 65 65 64 20 74 68 65 20 | 36 38 6b 20 74 69 63 6b |eed the |68k tick|
|00004c90| 2e 20 20 49 74 27 73 20 | 69 6e 20 71 70 43 6f 6e |. It's |in qpCon|
|00004ca0| 64 2e 0d 09 3e 6c 69 6e | 6b 20 28 66 6f 72 67 65 |d...>lin|k (forge|
|00004cb0| 74 29 20 20 3b 0d 0d 0d | 0d 5c 09 09 3d 3d 3d 3d |t) ;...|.\..====|
|00004cc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 20 20 4d 6f 64 75 6c |========|= Modul|
|00004cd0| 65 2d 72 65 6c 61 74 65 | 64 20 77 6f 72 64 73 20 |e-relate|d words |
|00004ce0| 20 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d | =======|========|
|00004cf0| 3d 3d 3d 3d 0d 0d 28 2a | 09 54 68 65 72 65 20 61 |====..(*|.There a|
|00004d00| 72 65 20 61 20 66 65 77 | 20 6d 6f 64 75 6c 65 2d |re a few| module-|
|00004d10| 72 65 6c 61 74 65 64 20 | 77 6f 72 64 73 20 77 68 |related |words wh|
|00004d20| 69 63 68 20 77 65 20 75 | 73 65 20 69 6e 20 74 68 |ich we u|se in th|
|00004d30| 65 20 63 6c 61 73 73 0d | 09 63 6f 64 65 2e 20 20 |e class.|.code. |
|00004d40| 48 6f 6c 64 6d 6f 64 20 | 69 73 20 66 6f 72 77 61 |Holdmod |is forwa|
|00004d50| 72 64 20 64 65 66 69 6e | 65 64 2c 20 61 6e 64 20 |rd defin|ed, and |
|00004d60| 72 65 73 6f 6c 76 65 64 | 20 69 6e 20 7a 4d 6f 64 |resolved| in zMod|
|00004d70| 75 6c 65 73 2e 20 20 4f | 66 0d 09 63 6f 75 72 73 |ules. O|f..cours|
|00004d80| 65 20 69 74 20 73 68 6f | 75 6c 64 20 6e 65 76 65 |e it sho|uld neve|
|00004d90| 72 20 6e 65 65 64 20 74 | 6f 20 62 65 20 65 78 65 |r need t|o be exe|
|00004da0| 63 75 74 65 64 20 62 65 | 66 6f 72 65 20 7a 4d 6f |cuted be|fore zMo|
|00004db0| 64 75 6c 65 73 20 69 73 | 20 6c 6f 61 64 65 64 21 |dules is| loaded!|
|00004dc0| 0d 09 0d 09 75 6e 68 6f | 6c 64 4d 6f 64 20 61 6e |....unho|ldMod an|
|00004dd0| 64 20 3f 75 6e 68 6f 6c | 64 4d 6f 64 20 64 6f 6e |d ?unhol|dMod don|
|00004de0| 27 74 20 72 65 6c 65 61 | 73 65 20 74 68 65 20 6d |'t relea|se the m|
|00004df0| 6f 64 75 6c 65 20 61 73 | 20 74 68 65 79 20 64 6f |odule as| they do|
|00004e00| 20 6f 6e 0d 09 74 68 65 | 20 36 38 6b 20 2d 20 6f | on..the| 68k - o|
|00004e10| 6e 63 65 20 61 20 6d 6f | 64 75 6c 65 20 69 73 20 |nce a mo|dule is |
|00004e20| 6c 6f 61 64 65 64 20 69 | 74 20 73 74 61 79 73 20 |loaded i|t stays |
|00004e30| 70 75 74 2e 20 20 53 6f | 20 61 6c 6c 20 74 68 65 |put. So| all the|
|00004e40| 73 65 20 77 6f 72 64 73 | 0d 09 68 61 76 65 20 74 |se words|..have t|
|00004e50| 6f 20 64 6f 20 68 65 72 | 65 20 69 73 20 63 6c 65 |o do her|e is cle|
|00004e60| 61 72 20 68 65 6c 64 4d | 6f 64 2e 0d 2a 29 0d 0d |ar heldM|od..*)..|
|00004e70| 66 6f 72 77 61 72 64 20 | 20 68 6f 6c 64 4d 6f 64 |forward | holdMod|
|00004e80| 0d 0d 3a 20 75 6e 68 6f | 6c 64 4d 6f 64 09 09 30 |..: unho|ldMod..0|
|00004e90| 20 2d 3e 20 68 65 6c 64 | 4d 6f 64 20 20 3b 0d 3a | -> held|Mod ;.:|
|00004ea0| 20 3f 75 6e 68 6f 6c 64 | 4d 6f 64 09 30 20 2d 3e | ?unhold|Mod.0 ->|
|00004eb0| 20 68 65 6c 64 4d 6f 64 | 20 20 3b 0d 0d 0d 3a 20 | heldMod| ;...: |
|00004ec0| 3f 3e 63 6c 61 73 73 49 | 6e 4d 6f 64 20 20 28 20 |?>classI|nMod ( |
|00004ed0| 5e 63 6c 61 73 73 20 2d | 2d 20 5e 63 6c 61 73 73 |^class -|- ^class|
|00004ee0| 27 20 29 0d 5c 09 30 20 | 2d 3e 20 73 65 67 23 5f |' ).\.0 |-> seg#_|
|00004ef0| 61 63 63 65 73 73 65 64 | 09 5c 20 6c 65 61 76 65 |accessed|.\ leave|
|00004f00| 20 7a 65 72 6f 20 69 66 | 20 77 65 20 64 6f 6e 27 | zero if| we don'|
|00004f10| 74 20 67 6f 20 69 6e 74 | 6f 20 61 20 6d 6f 64 75 |t go int|o a modu|
|00004f20| 6c 65 0d 09 64 75 70 20 | 32 2d 20 77 40 09 09 09 |le..dup |2- w@...|
|00004f30| 5c 20 63 6c 61 73 73 20 | 68 61 6e 64 6c 65 72 20 |\ class |handler |
|00004f40| 63 6f 64 65 0d 09 24 20 | 42 43 32 44 20 3d 0d 09 |code..$ |BC2D =..|
|00004f50| 49 46 09 68 6f 6c 64 4d | 6f 64 09 09 09 5c 20 69 |IF.holdM|od...\ i|
|00004f60| 66 20 63 6c 61 73 73 5f | 69 6e 5f 6d 6f 64 5f 68 |f class_|in_mod_h|
|00004f70| 2c 20 72 65 70 6c 61 63 | 65 73 20 5e 63 6c 61 73 |, replac|es ^clas|
|00004f80| 73 20 77 69 74 68 20 74 | 68 65 0d 09 09 09 09 09 |s with t|he......|
|00004f90| 09 5c 20 20 78 74 20 6f | 66 20 74 68 65 20 63 6c |.\ xt o|f the cl|
|00004fa0| 61 73 73 20 69 6e 20 74 | 68 65 20 6d 6f 64 2c 20 |ass in t|he mod, |
|00004fb0| 61 6e 64 20 68 6f 6c 64 | 73 20 69 74 2e 0d 09 54 |and hold|s it...T|
|00004fc0| 48 45 4e 0d 3b 0d 0d 0d | 65 6e 64 6c 6f 61 64 0d |HEN.;...|endload.|
|00004fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005000| 00 00 01 00 00 00 01 42 | 00 00 00 42 00 00 00 3b |.......B|...B...;|
|00005010| 00 00 00 20 00 4c af 8c | 0d d1 ff f9 00 01 f5 29 |... .L..|.......)|
|00005020| 00 00 02 0c 00 66 08 57 | 68 61 74 65 76 65 72 40 |.....f.W|hatever@|
|00005030| 05 70 6e 75 63 33 02 00 | 00 00 50 61 72 74 53 49 |.pnuc3..|..PartSI|
|00005040| 54 21 00 00 00 00 00 00 | 00 00 00 01 82 1d 00 00 |T!......|........|
|00005050| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|00005060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005070| 00 00 b3 66 c2 76 00 00 | 00 00 00 00 01 7d 10 44 |...f.v..|.....}.D|
|00005080| 65 76 2e 43 44 20 4d 61 | 72 20 39 37 20 52 4c 10 |ev.CD Ma|r 97 RL.|
|00005090| 00 00 00 00 00 00 00 20 | 00 58 ae f9 6e 97 00 00 |....... |.X..n...|
|000050a0| 00 00 00 00 00 00 02 0c | 00 6b 0a 6d 79 20 62 61 |........|.k.my ba|
|000050b0| 63 6b 75 70 73 00 00 00 | 00 00 00 30 00 5b 5a 00 |ckups...|...0.[Z.|
|000050c0| 43 44 45 46 f0 30 ae 9b | 83 6b ff fd 00 5b 42 f0 |CDEF.0..|.k...[B.|
|000050d0| 00 00 02 0c 00 6c 0d 53 | 74 61 74 69 6f 6e 20 53 |.....l.S|tation S|
|000050e0| 65 74 75 70 00 00 00 00 | 00 00 00 00 00 00 00 00 |etup....|........|
|000050f0| 00 00 af 59 70 2a 00 00 | 00 00 00 00 00 00 00 00 |...Yp*..|........|
|00005100| 00 00 00 3e 00 00 4c 38 | 00 00 00 00 00 00 00 00 |...>..L8|........|
|00005110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005120| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 0e 2a |........|.......*|
|00005130| 00 00 0e 2a 00 00 00 00 | 00 00 00 00 00 00 00 00 |...*....|........|
|00005140| 00 00 00 00 01 00 00 00 | 01 42 00 00 00 42 00 00 |........|.B...B..|
|00005150| 00 3b 02 65 b9 08 2a 9a | 00 00 00 1c 00 32 00 00 |.;.e..*.|.....2..|
|00005160| 4d 49 46 4f 00 00 00 0a | 00 80 00 00 00 00 00 00 |MIFO....|........|
|00005170| 02 65 bc ac 08 4d 69 73 | 63 49 6e 66 6f 00 00 00 |.e...Mis|cInfo...|
+--------+-------------------------+-------------------------+--------+--------+